我无法使用此代码关闭屏幕.我使用PowerManager和wl.release()方法,但它不起作用.有人能告诉我一个例子吗?
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK, "DoNotDimScreen");
Run Code Online (Sandbox Code Playgroud)
这是我的功能的一部分:
stateString = "nextone";
if(stateString=="nextone"){
wl.release();
}
Run Code Online (Sandbox Code Playgroud)
我还在清单中添加了权限但没有结果.
如果您不使用权限,则程序在尝试锁定时会崩溃SecurityException,因此这不是问题。正确的方法是:(在启动时获取WakeLock,在应用程序失去焦点时放弃它(onPause)
//declared globally so both functions can access this
public PowerManager.WakeLock wl;
///////////onCreate
//stop phone from sleeping
PowerManager powman = (PowerManager) getSystemService(Context.POWER_SERVICE);
wl = powman.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, "NameOfLock");
wl.acquire();
///////////onPause
wl.release();
//////////for completion's sake, onResume
if(!wl.isHeld()){
wl.acquire();
}
Run Code Online (Sandbox Code Playgroud)
然而,你的问题实际上是在这个检查中
if(stateString=="nextone")
这应该是if(stateString.equals("nextone"))
| 归档时间: |
|
| 查看次数: |
16119 次 |
| 最近记录: |