如何让Android设备实现息屏显示
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何让Android设备实现息屏显示相关的知识,希望对你有一定的参考价值。
参考技术A 什么是息屏显示?
息屏显示就是手机在息屏状态下,屏幕上会显示当前时间、日期信息,无需点亮手机屏幕即可查看。息屏显示的原理主要是利用了OLED屏幕像素点自发光的特性,仅显示时间的像素点发光,功耗相比LCD屏幕要低很多。
玩过android源码的同学应该知道,在Settings里有一个开关项:
既然知道主动显示开关是放在设置里面的,那不妨先从Settings的源码看起,首先找到主动显示对应的Preference,
然后发现在AmbientDisplaySettings里注册了一些controller,
先关注里面的两个:AmbientDisplayNotificationsPreferenceController和AmbientDisplayAlwaysOnPreferenceController,看名字大概能知道,第一个与通知有关,应该是上文提到的息屏后来通知才显示;而第二个就是我们要找的“始终开启”。
AmbientDisplayAlwaysOnPreferenceController :
分析AmbientDisplayAlwaysOnPreferenceController的源码发现,AlwaysOn的enable和available状态都需要通过AmbientDisplayConfiguration 这个类来获得,并且这个类位于framework中。
简单介绍下AmbientDisplayConfiguration 中与alwaysOn有关的几个函数:
alwaysOnAvailable 为true需要同时满足两个条件:
alwaysOnEnabled 为true需要同时满足三个条件:
原来源码里面默认把AlwaysOn功能给关闭了,如果想启用这个功能,需要修改config.xml里的两个值或者强制alwaysOnAvailable返回true,修改后设置里的主动显示一栏就会多出一项“始终开启”可以勾选,这样一来我们的设备在息屏之后就能自动开启主动显示功能了。
以上源码均取自Android O
[RK3568][Android11]息屏显示介绍
以上是关于如何让Android设备实现息屏显示的主要内容,如果未能解决你的问题,请参考以下文章