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);
}
}
}
приведенный выше код: когда кнопка питания нажата, защита клавиатуры будет отменена и возобновление приостановленной активности.
Однако защита клавиатуры не исчезнет, когда я нажал кнопку питания,и я должен разблокировать вручную.
Когда я нажимал кнопку питания, окно моей активности вспыхивало на секунду, и показывалось окно защиты клавиатуры.