android文档说我应该使用
WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
而不是
PowerManager.SCREEN_DIM_WAKE_LOCK。链接为here
但是当我尝试使用它时,我得到一个异常,说它是一个无效的锁定级别。我正在使用API级别18,这是失败的代码。
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, "My Tag");
有人试过这个吗?它有效吗?
答案 0 :(得分:2)
根据API文档,应该使用Window.addFlags()来保持屏幕。
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
答案 1 :(得分:0)
以下代码工作正常,请查看
import android.os.PowerManager;
public class MyActivity extends Activity {
protected PowerManager.WakeLock mWakeLock;
@Override
public void onCreate(final Bundle icicle) {
setContentView(R.layout.main);
/* This code together with the one in onDestroy()
* will make the screen be always on until this Activity gets destroyed. */
final PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
this.mWakeLock = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "My Tag");
this.mWakeLock.acquire();
}
@Override
public void onDestroy() {
this.mWakeLock.release();
super.onDestroy();
}
}
不要忘记在清单文件中授予权限
<uses-permission android:name="android.permission.WAKE_LOCK" />