我想唤醒设备并播放一段视频。下面是我的代码片段,可以唤醒并禁用密钥保护。
pm = (PowerManager) getApplicationContext().getSystemService(
Context.POWER_SERVICE);
keyguardManager = (KeyguardManager) getApplicationContext()
.getSystemService(Context.KEYGUARD_SERVICE);
KeyguardLock keyguardLock = keyguardManager.newKeyguardLock("TAG");
wakeLock = pm.newWakeLock(
(PowerManager.SCREEN_BRIGHT_WAKE_LOCK
| PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP),
"TAG");
wakeLock.acquire();
keyguardLock.disableKeyguard();
playVideo(getApplicationContext());
wakeLock.release();这段视频正在播放,但设备并没有被唤醒。
有什么建议吗?
编辑的
我找到了一个可行的解决方案,并把它作为一个答案。
如果有更好的解决办法,我想学习和了解它。
谢谢。
发布于 2014-06-17 10:57:01
经过一番推荐信和麻烦之后,我找到了一个可行的解决办法。
我在活动(LoginActivity)中实现了一个LoginActivity,我希望在屏幕休眠时调用视频活动(ScreenSaverActivity)。在onCreate方法ScreenSaverActivity中,我得到了问题中提到的上述代码片段。
我认为把wakelock.release和wakelock.aquire放在一起是个错误。然后,我尝试将这三行添加到ScreenSaverActivity中,并将上面的代码片段修改如下,这最终起作用了;
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD); getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED); getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
pm = (PowerManager) getApplicationContext().getSystemService(Context.POWER_SERVICE);
keyguardManager = (KeyguardManager) getApplicationContext().getSystemService(Context.KEYGUARD_SERVICE);
keyguardLock = keyguardManager.newKeyguardLock("TAG");
wakeLock = pm.newWakeLock((PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP), "TAG");
wakeLock.acquire();
keyguardLock.disableKeyguard();
playVideo();我说,
keyguardLock.reenableKeyguard();
wakeLock.release();
在停止视频和回到以前的(LoginActivity)活动之前。
有没有更好的答案。我想学习并了解它。
https://stackoverflow.com/questions/24198830
复制相似问题