Cómo deshabilitar el botón Inicio sin utilizar TYPE_KEYGUARD?

I crear una aplicación de lockscreen y necesito desactivar un botón de inicio, por lo que si ese teléfono es robado, que el teléfono no se puede acceder .. mi lockscreen es una actividad de pantalla completa .. im utilizar este código para desactivar un botón de inicio, pero Me dio un poco de error. Aquí está el código:

@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } @Override public void onAttachedToWindow() { this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD); super.onAttachedToWindow(); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { return false; } 

Que el código me dio algún error como un área de notificación / estado todavía se puede acceder incluso a mi actividad en el modo de pantalla completa, si apago mi pantalla y enciéndala de nuevo .. el error es como este:

Primera vez que se inició la aplicación: (todavía no hay problema)

Introduzca aquí la descripción de la imagen

Después de apagar la pantalla del botón de encendido y encenderla de nuevo: Introduzca aquí la descripción de la imagen

El principal problema es en la lockscreen .. cuando el área de notificación todavía se puede acceder, entonces la lockscreen no es útil ..

¿¿Alguna idea de como resolver esto?? por favor ayuda..

También estoy enfrentando el mismo problema cuando presiono el botón de la tecla final.

8 Solutions collect form web for “Cómo deshabilitar el botón Inicio sin utilizar TYPE_KEYGUARD?”

Para mi teléfono TYPE_KEYGUARD parece anular la pantalla completa, sin tema de barra de título. La barra de notificación siempre está presente. Prueba esto:

 @Override public void onAttachedToWindow() { this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG); super.onAttachedToWindow(); } 

Haga que su vista estire toda la pantalla y cubrirá el área de notificación. Su área de notificación todavía puede ser clicable (invisible), pero creo que si usted captura todos los eventos clave en su vista no debe propagarse hasta la barra.

Este es el trabajo para el tema anterior.

 @Override public void onAttachedToWindow() { this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG); KeyguardManager keyguardManager = (KeyguardManager) getSystemService(KEYGUARD_SERVICE); KeyguardLock lock = keyguardManager.newKeyguardLock(KEYGUARD_SERVICE); lock.disableKeyguard(); } 

Añadir android.permission.DISABLE_KEYGUARD permiso y dar android:theme="@android:style/Theme.NoTitleBar.Fullscreen" a la aplicación

En mi bolsillo de Samusung, nada arriba funcionó bien. Podría hacerlo finalmente después de una nueva búsqueda.

Los pongo en pantalla completa en tu AndroidMainfest.xml como sigue (no en código Acitivity):

 <activity android:name=".geo.activity.LockActivity" android:theme = "@android:style/Theme.Black.NoTitleBar.Fullscreen" /> 

Y usa el método keygurad onAttachedToWindow () en tu actividad:

 @Override public void onAttachedToWindow() { this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD_DIALOG); KeyguardManager keyguardManager = (KeyguardManager) getSystemService(KEYGUARD_SERVICE); KeyguardLock lock = keyguardManager.newKeyguardLock(KEYGUARD_SERVICE); lock.disableKeyguard(); } 

Exactamente lo que he querido. Bloqueando el botón HOME y lo mismo después de apagar / encender.

Es muy simple, debe deshabilitar el bloqueo de teclado en el método onAttachedToWindow ():

 KeyguardManager keyguardManager = (KeyguardManager) getSystemService(KEYGUARD_SERVICE); KeyguardLock lock = keyguardManager.newKeyguardLock(KEYGUARD_SERVICE); lock.disableKeyguard(); 

Pruebe este código:

 @Override public void onAttachedToWindow() { // TODO Auto-generated method stub super.onAttachedToWindow(); handler.postDelayed(mUpdateUiMsg, 100); } public boolean onKeyDown(int keyCode, KeyEvent event) { // TODO Auto-generated method stub if(keyCode==KeyEvent.KEYCODE_BACK){ return true; } if(keyCode==KeyEvent.KEYCODE_HOME){ return true; } return super.onKeyDown(keyCode, event); } private Runnable mUpdateUiMsg = new Runnable() { public void run() { getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD); } }; 

Para una lockscreen ¿Por qué no sólo utiliza lo siguiente:

 @Override public void onAttachedToWindow() { getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED); getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD); } 

Si el usuario no tiene un conjunto de bloqueo seguro, la aplicación sólo se abrirá cuando aparezca la aplicación. Si el usuario tiene un conjunto de lockscreen seguro entonces el bloqueo seguro estándar aparecerá próximo no importa cómo se cierra su aplicación. Supongo que no me preocuparía por desactivar los botones. El usuario debe tener permiso para utilizar las características de seguridad estándar de todos modos, ya que proporcionan más seguridad que usted puede garantizar de su aplicación. Además, no tienes que pasar el tiempo codificando funciones seguras de desbloqueo.

  @Override public boolean onKeyDown(int keyCode, android.view.KeyEvent event) { if((keyCode == KeyEvent.KEYCODE_HOME)){ return true; } return false; } 

No se puede controlar el comportamiento del Home Button . Se hará la tarea y es necesario ajustar los requisitos de la aplicación.

Para la pantalla completa, agrega esto en tu etiqueta de actividad en tu archivo de manifiesto:

 android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 
  • La acción de notificación de Android no se activa (PendingIntent)
  • Intención con el extra antiguo en onCreate () para singleTask Actividad
  • Notificación de IntentService - NullPointerException mientras obtiene Context
  • Notificación de Lollipop setVisibility () ¿No funciona?
  • Notificación de Android BigPictureStyle desaparición de texto
  • El icono de notificación no aparece en la barra de estado en lollipop
  • La notificación pasa Antiguo Intent Extras
  • Cancelar notificación después de que la aplicación se cierre desde el fondo
  • Android - Notificación incorrecta publicada - No se pudo expandir RemoteViews para: StatusBarNotification
  • Cambiar dinámicamente el texto de notificación de Android
  • La intención en la notificación no funciona
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.