失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Android 控制屏幕唤醒常亮或熄灭

Android 控制屏幕唤醒常亮或熄灭

时间:2019-03-07 13:29:56

相关推荐

Android 控制屏幕唤醒常亮或熄灭

需求:在诗词曲文项目中,诗词整篇朗读的时候,文章没有读完会因为屏幕熄灭停止朗读。要求:在文章没有朗读完毕之前屏幕常亮,读完以后屏幕常亮关闭;

1.权限配置:设置电源管理的权限。

<uses-permission android:name="android.permission.WAKE_LOCK"/><uses-permission android:name="android.permission.DEVICE_POWER"tools:ignore="ProtectedPermissions"/>

2.保持屏幕唤醒逻辑

private static PowerManager.WakeLock wakeLock;

public static void keepScreenOn(Context context, boolean on) {if (on) {PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);wakeLock = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ON_AFTER_RELEASE,TAG);wakeLock.acquire();} else {if (wakeLock != null) {wakeLock.release();wakeLock = null;}}}

3.newWakeLock参数说明:

根据flags不同的值,实现不同级别的电源管理。 关于int flags 各种锁的类型对CPU 、屏幕、键盘的影响:

PARTIAL_WAKE_LOCK :保持CPU 运转,屏幕和键盘灯有可能是关闭的。

SCREEN_DIM_WAKE_LOCK :保持CPU运转,允许保持屏幕显示但有可能是灰的,允许关闭键盘灯 SCREEN_BRIGHT_WAKE_LOCK :保持CPU 运转,允许保持屏幕高亮显示,允许关闭键盘灯 FULL_WAKE_LOCK :保持CPU 运转,保持屏幕高亮显示,键盘灯也保持亮度.

4.在项目结束【本项目中播放完毕】在Destory中将wakeLock给release掉:

@Override protected void onDestroy() { super.onDestroy(); keepScreenOn(Main.this, false); }

【wakelock唤醒锁被release后不会直接熄屏,而是在系统指定的梁平时间结束之后熄屏】

5.注意:Android中通过各种Lock锁对电源进行控制,需要注意的是加锁和解锁必须成对出现。

转载自:/zhoumushui/article/details/41964147

如果觉得《Android 控制屏幕唤醒常亮或熄灭》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。