protected void onPause()
{
super.onPause();
// If the screen is off then the device has been locked
PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE);
boolean isScreenOn = powerManager.isScreenOn();
//screen locked
if (!isScreenOn) {
boolean pressed = onKeyDown(26, null);
//power button pressed
if(pressed){
//remove keyguard
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
//start intent
Intent i = new Intent(this, VoiceRecognitionActivity.class);
startActivity(i);
}
}
}
le code ci-dessus est lorsque le bouton d'alimentation est enfoncé, le verrouillage du clavier sera rejeté et l'activité surpaused sera repris. Toutefois, le verrouillage du clavier n'est pas coupé lorsque j'ai appuyé sur le bouton d'alimentation, et je dois le déverrouiller manuellement.ignorer le verrouillage d'écran
Lorsque j'ai appuyé sur le bouton d'alimentation, la fenêtre de mon activité a clignoté pendant une seconde et la fenêtre du clavier est affichée.
salut inazaruk, je vous remercie pour votre réponse. Cependant, je n'essaie pas d'empêcher le téléphone de dormir. Je veux faire quelque chose comme quand j'ai appuyé sur le bouton d'alimentation pour réveiller le téléphone, il ira automatiquement dans une activité de reconnaissance vocale où il va enregistrer une commande vocale. Si la commande vocale correspond, cela débloquera le téléphone. – star