<!--权限 唤醒cpu ,点亮屏幕 miui 上有开关-->
<uses-permission android:name="android.permission.WAKE_LOCK"/>
public static void lightUpScreen(Activity context) {
ScreenUtil.setScreenAlwaysOn(context,true);
// PARTIAL_WAKE_LOCK:保持CPU 运转,屏幕和键盘灯有可能是关闭的。
// SCREEN_DIM_WAKE_LOCK:保持CPU 运转,允许保持屏幕显示但有可能是灰的,允许关闭键盘灯
// 过期:SCREEN_BRIGHT_WAKE_LOCK:保持CPU 运转,允许保持屏幕高亮显示,允许关闭键盘灯 ,WindowManager.LayoutParams#FLAG_KEEP_SCREEN_ON
// FULL_WAKE_LOCK:保持CPU 运转,保持屏幕高亮显示,键盘灯也保持亮度
// 下面这俩要和上面的4个配合,才能使用
// ACQUIRE_CAUSES_WAKEUP:强制使屏幕亮起,这种锁主要针对一些必须通知用户的操作.
// ON_AFTER_RELEASE:当锁被释放时,保持屏幕亮起一段时间
PowerManager pm = (PowerManager)context.getSystemService(Context.POWER_SERVICE);
@SuppressLint( "InvalidWakeLockTag" )
PowerManager.WakeLock wakeLock = pm.newWakeLock(
PowerManager.SCREEN_DIM_WAKE_LOCK
| PowerManager.ACQUIRE_CAUSES_WAKEUP
| PowerManager.ON_AFTER_RELEASE,"TAG");
if (wakeLock != null) {
wakeLock.acquire();
}
}
public static void releaseWakeLock(Activity context) {
ScreenUtil.setScreenAlwaysOn(context,false);
PowerManager pm = (PowerManager)context.getSystemService(Context.POWER_SERVICE);
@SuppressLint( "InvalidWakeLockTag" ) PowerManager.WakeLock wakeLock =
pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK
| PowerManager.ACQUIRE_CAUSES_WAKEUP
| PowerManager.ON_AFTER_RELEASE,"TAG");
if (null != wakeLock && wakeLock.isHeld()) {
wakeLock.release();
}
}
网友评论