samsung - habilitar y deshabilitar botones en android studio
Android: ¿es posible desactivar el clic del botón de inicio? (6)
Agregue el siguiente código a su actividad:
@override
public void onAttachedToWindow()
{
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
super.onAttachedToWindow();
}
Editar:
Esto funciona en todas las versiones anteriores de Android. Pero no funcionará en ICS
y Jelly Bean y le dará un accidente en la aplicación
¿Qué significa este código de Java de 4 líneas en la aplicación de Android?
Tengo una aplicación, cuando se inicia tengo que deshabilitar todos los botones en el dispositivo Android, logré deshabilitar la llamada final y otros. Necesito desactivar el botón de inicio clic. No debe producir ninguna acción al hacer clic.
Cualquier sugerencia muy apreciada
Agregue esto en su manifest.xml para su actividad principal:
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.HOME" />
El botón INICIO siempre (re) lanzará tu actividad. Trabaja en Froyo.
Encontré una manera de abordar la tecla HOME. Para su aplicación configure el manifiesto como
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.HOME" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.MONKEY"/>
Ahora tu aplicación es una aplicación Launcher alternativa.
Utilice el adb e inhabilite la aplicación de inicio mediante el administrador de paquetes
pm disable com.android.launcher2
Ahora la tecla de inicio siempre permanecerá en la misma pantalla.
Una adición adicional a la publicación de Jeffreys, aquí hay algo que funcionó para mí (y todavía permite el tema translúcido)
@Override
public void onAttachedToWindow()
{
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG);
super.onAttachedToWindow();
}
Porque hace que aparezca el protector de teclas, también puedes desactivar el bloqueo de teclas mientras la aplicación está en uso:
KeyguardManager keyguardManager = (KeyguardManager)getSystemService(KEYGUARD_SERVICE);
KeyguardLock lock = keyguardManager.newKeyguardLock(KEYGUARD_SERVICE);
lock.disableKeyguard();
Esto funciona muy bien para hacer tu propia aplicación de bloqueo de teclas.
here puedes encontrar mi aplicación de muestra de Android que persiste en la página de inicio. Los botones Inicio, Atrás, Llamar, Encendido están deshabilitados. El usuario puede finalizar la aplicación solo escribiendo una contraseña.
Estoy bastante seguro de que Toddler Lock solo usa un BroadcastReciever y escucha Intent.ACTION_MAIN
y la categoría Intent.CATEGORY_HOME
- es por eso que cuando lo Intent.CATEGORY_HOME
por primera vez, te dice que Intent.ACTION_MAIN
la Intent.CATEGORY_HOME
"usar esta aplicación como predeterminada", y te hace seleccione bloqueo de niño.
Por lo tanto, no está bloqueando realmente el botón de inicio, simplemente se configura como el receptor de difusión predeterminado para:
Intent i = new Intent(Intent.ACTION_MAIN);
i.addCategory(Intent.CATEGORY_HOME);
Cuando ejecutas Toddler Lock, probablemente establezca una bandera interna, y si presionas el botón de inicio, simplemente pone la ventana al frente. Si la bandera no está configurada, probablemente inicie el Lanzador de forma explícita.
Espero que tenga sentido. Es solo una teoría, pero estoy casi 100% seguro de que así es como se hace.