权限
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
唤醒屏幕代码
PowerManager mPowerManager = (PowerManager) activity.getSystemService(POWER_SERVICE);
PowerManager.WakeLock mWakeLock = mPowerManager.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, "tag");
mWakeLock.acquire(60*1000L /*1 minutes*/);
解锁屏幕代码
KeyguardManager.KeyguardLock mUnLock;
KeyguardManager keyguardManager = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);
assert keyguardManager != null;
mUnLock = keyguardManager.newKeyguardLock("unLock");
mUnLock.disableKeyguard();
FLAG_KEEP_SCREEN_ON是让屏幕保持不暗不关闭的最好方法,那么这个方法具体应该怎么使用呢?
我在stackoverflow上找到如下代码:
@Override protected void onCreate(Bundle icicle) { super.onCreate(icicle); getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); }
具体还是要参见 Android 官方文档
https://developer.android.google.cn/training/scheduling/wakelock