Dro*_*man 16 android android-wake-lock
我的要求是:在GCM消息到达后,设备应该唤醒以显示高优先级通知.设备应打开屏幕.
目前我正在使用WakeLock来实现这一目标.该newWakeLock()方法需要传递锁定级别和标志(作为第一个参数,按位或者).
我正在使用PowerManager.ACQUIRE_CAUSES_WAKEUP旗帜,因为它完全符合我的需要.但是,我对锁定级别有点沮丧.所以根据文档,我有以下选择:
PARTIAL_WAKE_LOCK- 与ACQUIRE_CAUSES_WAKEUP屏幕不兼容/不打开屏幕SCREEN_DIM_WAKE_LOCK - 已弃用SCREEN_BRIGHT_WAKE_LOCK - 已弃用FULL_WAKE_LOCK - 已弃用FLAG_KEEP_SCREEN_ON在这种情况下,建议完全没用.我最终只是在压制弃用警告:
@SuppressWarnings("deprecation")
PowerManager.WakeLock screenOn = ((PowerManager) c.getSystemService(Context.POWER_SERVICE)).newWakeLock(
PowerManager.SCREEN_DIM_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, TAG);
screenOn.acquire();
mNotifyMgr.notify(mNotificationId, mBuilder.build());
screenOn.release();
Run Code Online (Sandbox Code Playgroud)
问题:在描述的情况下是否有一种非弃用的可靠方法来唤醒设备?
编辑 我不是要求解决方法来唤醒设备.我的问题是,是否可以Activity使用不弃用的API 从后台唤醒设备(没有运行)
RuA*_*are 13
使用我从我的问题中获得的代码,然后只需完成活动,应该为用户正常的时间留下屏幕.相信我,这是唯一的方法,在这个问题上度过了一个愉快的一周.您始终可以使用notitlebar将活动设置为透明,用户永远不会知道.
@Override
protected void onCreate(Bundle savedInstanceState) {
getWindow().addFlags(
WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED |
WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD |
WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON |
WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON |
WindowManager.LayoutParams.FLAG_ALLOW_LOCK_WHILE_SCREEN_ON);
finish();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6545 次 |
| 最近记录: |