我想要唤醒并解锁设备。然后,当用户收到来自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_ACTIVITY_NEW_TASK
为标志开始活动。
有谁知道我错过了什么?
感谢您的帮助。
答案 0 :(得分:2)
好的,我找到了。我只是添加了那段代码,它就可以了。
KeyguardManager manager = (KeyguardManager) this.getSystemService(Context.KEYGUARD_SERVICE);
KeyguardManager.KeyguardLock lock = manager.newKeyguardLock("abc");
lock.disableKeyguard();