我需要打开屏幕,然后推送消息到达,所以我从WakefulBroadcastReceiver启动intentService,并在服务中创建通知,然后通过此代码打开屏幕:
PowerManager pm = (PowerManager)getSystemService(Context.POWER_SERVICE);
if(!pm.isScreenOn())
{
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP | PowerManager.ON_AFTER_RELEASE
, "MyLock");
wl.acquire(5000);
}
这很好用
但是,现在不推荐使用PowerManager.FULL_WAKE_LOCK,我也没有看到如何在服务中使用LayoutParams.FLAG_KEEP_SCREEN_ON,如文档所示。
FULL_WAKE_LOCK的任何替代方案?如何避免使用弃用的api?
是否有其他方法可以在通知接收时点亮屏幕?
答案 0 :(得分:0)
使用LayoutParams -
this.getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);