美文网首页
Android从熄屏到亮屏

Android从熄屏到亮屏

作者: hao_developer | 来源:发表于2021-08-23 10:07 被阅读0次

一、系统服务——PowerManager

PowerManager.java就是管理我们电源方面的功能的,当然也包括我们屏幕的亮和熄灭。

PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);

PowerManager pm = (PowerManager)getSystemService(POWER_SERVICE);// init powerManager

因为PowerManager是系统服务,所以它的生命周期不是应用程序所能控制的;应用程序只能通过系统,向系统请求获取PowerManager服务,然后系统把这个服务的应用给我们用。

二、PowerManager.WakeLock

这个内部类可以真正实现控制屏幕

类型 cpu 屏幕 键盘
PARTIAL_WAKE_LOCK on off off
SCREEN_DIM_WAKE_LOCK on dim off
SCREEN_BRIGHT_WAKE_LOCK on Bright off
FULL_WAKE_LOCK on Bright Bright

由于它定义了这么多类型,每种类型可以指定相对应的部件工作和不工作。那么我们就可以利用这些类型,从最细粒度来控制我们的屏幕,控制我们的电源,从而让我们的电源工作时间尽可能的延长。

三、实际运用

  1. 首先加入权限
<uses-permissionandroid:name="android.permission.WAKE_LOCK" />
  1. 进行初始化
private PowerManager.WakeLock mWakelock;
PowerManager pm = (PowerManager)getSystemService(POWER_SERVICE);// init powerManager
        mWakelock = pm.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP|
                PowerManager.SCREEN_DIM_WAKE_LOCK,"target"); // this target for tell OS which app control screen
  1. 强制亮屏
mWakelock.acquire(); // Wake up Screen and keep screen lighting
  1. 取消强制亮屏,释放控制
mWakelock.release(); // release control.stop to keep screen lighting

PS:这里需要注意的是acquire和release必须成对使用

  1. 有一种情况是类似于来电显示,我们不仅需要让屏幕点亮,而且还想要取消锁屏界面,该怎么做呢?

在AndroidManifest.xml中加上permission 权限:

<uses-permissionandroid:name="android.permission.DISABLE_KEYGUARD" />
// 键盘锁管理器对象
        KeyguardManager km = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);
        // 这里参数”kale”作为调试时LogCat中的Tag
        KeyguardLock kl = km.newKeyguardLock("kale");
        if (km.inKeyguardRestrictedInputMode()) {  
             // 解锁键盘  
             kl.disableKeyguard(); 
         }
  1. 在新版本中上面的代码变得不推荐了,系统给在activity显示时保持常亮提供了一个新的方法,使用方法也相当简单,下面这句只需要加在activity中即可。
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

相关文章

  • Android从熄屏到亮屏

    一、系统服务——PowerManager PowerManager.java就是管理我们电源方面的功能的,当然也包...

  • Android亮屏和熄屏控制

    一. 前言我们的Android应用程序很多需要和亮屏和熄屏打交道,比如闹钟的时候,需要保持亮屏,之后又需要熄屏。...

  • android 判断是否熄屏(亮屏&熄屏)

    有两种方案: 一、代码直接判定 二、接收广播 现在先说第一类方法(代码直接判定): 1、通过PowerManage...

  • Android自定义屏保

    Android亮屏、熄屏的时候会发出广播,通常在熄屏广播中启动屏保 注册屏幕广播 在该广播的Action中有着这样...

  • 快毕业了

    这两天一直在打游戏。 手机屏幕熄屏后按不亮的问题日益加剧,有时候白天熄屏了也一直按不亮。必须将亮度调到最亮才行,我...

  • 亮屏流程

    亮屏有很多种方式,如Power键亮屏、插拔USB亮屏、来电亮屏......,虽然方式不同,但只要发起亮屏,其流程都...

  • 全面屏时代!刘海屏、水滴屏、滑盖屏和升降摄像头你喜欢哪种?

    在手机屏幕的进化中,经历了从黑白到彩色,从小屏到大屏,从低分辨率到高清;屏幕从液晶屏、OLED屏、双曲屏、柔性屏,...

  • Android 唤醒手机亮屏并前台显示

    Android 唤醒手机亮屏并前台显示 目前网络上许多唤醒手机亮屏的方式在高版本上都失效了 下面是自己实现的方式 ...

  • android横竖屏锁定

    android横竖屏锁定 横屏锁定 竖屏锁定

  • UiSelector移动设备九宫格解锁

    一、手机操作 1.1息屏 1.2点亮屏幕 1.3点亮屏幕并解锁 1.4获取当前屏幕状态,屏幕点亮为True,屏幕熄...

网友评论

      本文标题:Android从熄屏到亮屏

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