Android关闭屏幕

And*_*ner 6 android screen

我无法使用此代码关闭屏幕.我使用PowerManagerwl.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)

我还在清单中添加了权限但没有结果.

Dor*_*oro 0

如果您不使用权限,则程序在尝试锁定时会崩溃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"))