Android 以编程方式唤醒设备

Android 以编程方式唤醒设备,android,android-4.4-kitkat,unlock,Android,Android 4.4 Kitkat,Unlock,我想唤醒并解锁一个设备。然后,我想在用户收到来自Firebase的新消息时显示一个活动 我是在onResume()方法上写的 window = this.getWindow(); window.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD); window.addFlags(WindowManager.LayoutParams

我想唤醒并解锁一个设备。然后,我想在用户收到来自
Firebase
的新消息时显示一个活动

我是在
onResume()方法上写的

window = this.getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
这适用于API>19的设备。问题在于,在KitKat中,它要么什么也不做,要么唤醒屏幕但不解锁设备

我还在
AndroidManifest.xml
中设置了正确的权限:

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />

同样在
MyFirebaseMessagingService.class
中,我将以
FLAG\u activity\u NEW\u TASK
作为标志启动一个活动

有人知道我错过了什么吗


谢谢你的帮助。

好的,我找到了。我只是添加了一段代码,它就成功了

KeyguardManager manager = (KeyguardManager) this.getSystemService(Context.KEYGUARD_SERVICE);
KeyguardManager.KeyguardLock lock = manager.newKeyguardLock("abc");
lock.disableKeyguard();

通过代码检查解锁设备的此链接