Deshabilitar Keycode_BACK, Key_HOME

閲覧: 34 回
最初の未読メッセージにスキップ

Roger Edilson Gonzalez

未読、
2016/03/01 17:22:262016/03/01
To: desarrolladores-android


Hola amigos

Buena tarde

Estoy tratado de deshabilitarlas las teclas inferiores en mi app. pero hasta el momento he logrado deshabilitar  keycode_back.

El objetivo de esto es para realizar un DASHBOARD en fullscreen


Mi codigo es el siguiente


MANIFEST.


<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="salitre.tki.com.a3">

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/Theme.AppCompat.NoActionBar">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />


<activity
android:name="com.package.SplashActivity"
android:theme="@android:style/Theme.Black.NoTitleBar" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

</manifest>


MainActivity.java


package salitre.tki.com.a3;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.KeyEvent;
import android.view.WindowManager;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

private WebChromeClient chromeClient;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);


WebView webview = (WebView) findViewById(R.id.webview);

webview.setWebViewClient(new WebViewClient());
webview.setWebChromeClient(chromeClient);
webview.getSettings().setJavaScriptEnabled(true);
webview.getSettings().setDomStorageEnabled(true);
webview.loadUrl("http://sistran.net/dashboard");


}

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK)
Toast.makeText(getApplicationContext(), "NO PERMITIDO",
Toast.LENGTH_LONG).show();
if (keyCode == KeyEvent.KEYCODE_HOME)
Toast.makeText(getApplicationContext(), "NO PERMITIDO",
Toast.LENGTH_SHORT).show();

return false;
// Disable back button..............
}

}


activity_main.xml


<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
tools:ignore="MergeRootFrame">

<WebView
android:id="@+id/webview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="right|top" />
</FrameLayout>

Eduardo Martin Cabrera

未読、
2016/03/02 16:10:012016/03/02
To: desarrolladores-android
Por un lado seria bueno saber a que API estas apuntando a usar. Por otro lado, no es una mala práctica? deshabilitar el back button puede ser, pero bloquearle la tecla de home, ademas de ser una complicación a la hora de desarrollo, termina un poco como secuestrarle el dispositivo al usuario, es mas creo que se dieron de bajas muchas apps por usar ese comportamiento de modo malicioso; tal vez te puede dar malas experiencias de usuarios, (bajas puntuaciones en playstore) si se tratase de una app publicada. En cambio si se trata de algo que lo pidió así un cliente bueno allá el, pero no lo veo muy recomendable, bien, habiendo hechos las advertencias: mira estos links

la cuestion es que o bien tenes hacer una app de tipo launcher o homescreen
https://github.com/shaobin0604/Android-HomeKey-Locker

Como para que veas sobre el tema:
http://stackoverflow.com/questions/3898876/how-to-disable-the-home-key
http://stackoverflow.com/questions/17549478/how-to-disable-home-and-other-system-buttons-in-android
http://stackoverflow.com/questions/10077675/disable-home-button-in-android-ics-4-0
http://stackoverflow.com/questions/15459407/disable-home-button-in-android-4-0
http://stackoverflow.com/questions/17549478/how-to-disable-home-and-other-system-buttons-in-android

la otra manera es agregar un Permission para poder dibujar sobre otras apps pero eso es bastante complicado también

resumen level 5: Google no quiere que una app le bloquee la posibilidad de salir de la misma a un usuario cuando lo desee, sobre todo porque eso ya se ha usado de forma malintencionada.

saludos! 

全員に返信
投稿者に返信
転送
新着メール 0 件