美文网首页
Android 主动亮屏WakeLock

Android 主动亮屏WakeLock

作者: yunhen | 来源:发表于2019-08-22 15:59 被阅读0次
<!--权限 唤醒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();
        }
    }

相关文章

网友评论

      本文标题:Android 主动亮屏WakeLock

      本文链接:https://www.haomeiwen.com/subject/aaonsctx.html