Android 亮屏

本文介绍了如何在Android系统中实现设备屏幕的亮屏功能,通过获取并使用电源管理器对象来控制屏幕状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

亮屏需求:1. 使屏幕常亮(满足条件下:收到特定广播后,使屏幕常亮;收到另一特定广播,取消常亮功能)
                2. 屏幕自动熄灭后,将屏幕亮起(包括:手机在指定时间后自动熄灭,按下锁屏键后熄灭)

三种方案:
(1)通过view.Window实现
Window  window;

window=getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

//取消亮屏
window.clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

这种方法可以实现屏幕常亮与取消常亮功能,但在屏幕自动熄灭后无法点亮屏幕。
因为Window:通过控制顶层窗口的外观行为,使屏幕亮起;屏幕自动熄灭后会锁屏,所以无法点亮屏幕,只能保持屏幕常亮。

(2)通过WakeLock实现
要申请权限
<uses-permission android:name="android.permission.WAKE_LOCK" />

获取电源管理器对象

PowerManager mPowerManager = (PowerManager) getSystemService(POWER_SERVICE);
boolean screenOn = mPowerManager.isScreenOn();
if (!screenOn) {
// 获取PowerManager.WakeLock对象,后面的参数|表示同时传入两个值,最后的是LogCat里用的Tag
PowerManager.WakeLock mWakeLock = mPowerManager.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP | PowerManager.SCREEN_BRIGHT_WAKE_LOCK, "bright");
mWakeLock.acquire(1000); // 点亮屏幕
}

//释放屏幕锁
if (null != mWakeLock) {
mWakeLock.release();
}


这种方法可以实现屏幕常亮与取消常亮功能,也可在屏幕熄灭后点亮屏幕(包括按电源键熄灭屏幕)。 PowerManager. SCREEN_DIM_WAKE_LOCK  //屏幕常亮,但是不会持续高亮,会变暗
PowerManager. ACQUIRE_CAUSES_WAKEUP | PowerManager. SCREEN_BRIGHT_WAKE_LOCK    //屏幕保持常亮

PowerManager:此类使您能够控制设备的电源状态。
PowerManager WakeLock:唤醒锁是一种机制, 用于指示应用程序需要使设备保持不动。

唤醒锁级别, 并对系统电源产生不同的影响。这些级别是互斥的-只能指定其中之一.见下表:


如果您持有部分唤醒锁, CPU 将继续运行, 无论显示超时或屏幕状态如何, 甚至在用户按下电源按钮后。在所有其他唤醒锁中, CPU 将运行, 但用户仍然可以使用电源按钮使设备休眠。
此外, 还可以添加另外两个标志, 仅影响屏幕的行为。当与 PARTIAL_WAKE_LOCK合并时, 这些标志不起作用.

(3)
在布局文件里加上android:keepScreenOn="true"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值