我想创建一个警报应用程序。使用GCM(GoogleCloudMessaging)接收警报。现在,我希望在屏幕上显示警报消息,而无需用户执行任何操作。因此,我需要唤醒设备并解锁屏幕。
在论坛中,我发现这个答案(以及一些类似的)描述了我如何实现这种行为: android-wake-up-and-unlock-device
阅读文档,使用WakeLock
似乎已被弃用:即
full_wake_lock
FULL_WAKE_LOCK在API级别1中添加
int FULL_WAKE_LOCK
此常量在API级别17中已弃用。大多数应用程序都应该这样做 使用FLAG_KEEP_SCREEN_ON而不是这种类型的唤醒锁定 当用户在两者之间移动时,由平台正确管理 申请并不需要特别许可。
在文档中,使用WindowManager
显示替代方案。
在旗帜的帮助下
WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD
我应该能够将警报消息发送到前面,而不需要密钥保护安全模式。
我现在的问题是:
当我想使用这些标志时,是否还需要wakeLock
来唤醒我的设备,或者这是由窗口管理器隐式完成的吗?