Android: no se puede volver a habilitar el bloqueo de teclado después de deshabilitarlo
Frecuentes
Visto 2,058 veces
3
Estoy tratando de crear una opción (usando las preferencias de la casilla de verificación) en mi aplicación para que el usuario deshabilite y vuelva a habilitar la pantalla de bloqueo. Uso disabledKeyguard() para deshabilitar la pantalla de bloqueo y funciona perfectamente, pero no puedo volver a habilitar Keyguard() para que funcione. El código es bastante simple, no sé por qué no funciona.
public void onSharedPreferenceChanged(SharedPreferences taskprefs,
String tasks_pref) {
boolean skiplock = taskprefs.getBoolean("pref_skiplock", false);
boolean screentimeout = taskprefs.getBoolean("pref_screentimeout",
false);
skiplock(skiplock);
// Log.v("TaskActivity", "Skiplock value is " + skiplock);
// Log.v("TaskActivity", "ScreenTimeout value is " + screentimeout);
}
private void skiplock(boolean action) {
KeyguardManager keyguardManager = (KeyguardManager) getSystemService(Activity.KEYGUARD_SERVICE);
KeyguardLock lock = keyguardManager.newKeyguardLock(KEYGUARD_SERVICE);
//
if (action == true) {
lock.disableKeyguard();
Toast.makeText(getApplicationContext(), "Lockscreen Disabled",
Toast.LENGTH_SHORT).show();
}
//
else if (action==false) {
lock.reenableKeyguard();
Toast.makeText(getApplicationContext(), "Lockscreen Enabled",
Toast.LENGTH_SHORT).show();
}
}
1 Respuestas
4
El problema era que se crea (declara) un nuevo objeto Keyguard dentro del método skiplock() cada vez que se llama. Una solución simple es declarar el bloqueo de teclado como un objeto global y referirse a ese único objeto para que su estado no se restablezca cuando el método termine de ejecutarse.
En resumen, solo use "KeguardLock lock" y "KeyguardManager keyguardManager" como constructores globales.
respondido 11 mar '13, 19:03
He hecho una pregunta aquí. stackoverflow.com/questions/15338400/… por favor, eche un vistazo aquí. y actualice mi código como su respuesta. Haré que sea una respuesta aceptada. Gracias - qadir hussein
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas android locking screen preferences keyguard or haz tu propia pregunta.
encontraste la solucion.?? Tengo el mismo problema. - Qadir Hussain
@QadirHussain Sí, publicó la respuesta a continuación. - Jasjit Singh Marwah