我在获取WakeLock时遇到问题.似乎没有用.我正在尝试获取FULL_WAKE_LOCK,但是显示器都没有启用,我的应用程序也无法执行任务.
我使用以下权限:android.permission.WAKE_LOCK
我获得的代码如下所示:
PowerManager pm = (PowerManager) getBaseContext().getSystemService(Context.POWER_SERVICE);
wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK|PowerManager.ACQUIRE_CAUSES_WAKEUP, "My Tag");
wl.acquire();
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
编辑:添加了另一个标志ACQUIRE_CAUSES_WAKEUP ......但行为没有变化
编辑2:我想做的就是播放音乐并在特定事件中唤醒我的设备.音乐工作正常,但设备保持黑色.
WakeLock是一种保持屏幕开启的低效方式.而是使用WindowManager来做魔术.以下一行就足够了WakeLock.为此,还需要WakeLock权限.此代码也比wakeLock有效.
getWindow().addFlags(LayoutParams.FLAG_KEEP_SCREEN_ON);
Run Code Online (Sandbox Code Playgroud)
您无需手动重新启动WakeLock.此代码将允许Android系统自动处理锁定.当您的应用程序在Foreground中时,将保留WakeLock,否则android System会自动释放Lock.
但是如果你想释放旗帜,你可以这样做:
getWindow().clearFlags(LayoutParams.FLAG_KEEP_SCREEN_ON);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4618 次 |
| 最近记录: |