目录

充电学习中...

存档: 2023 年 02 月 (1)

拆解QtScrcpy的熄屏控制功能 有更新!

QtScrcpy 是一款优秀的安卓投屏开源软件,其投屏效果接近于直接在PC上使用模拟器,但是本文的关注点在于其一个相对冷门的功能----关闭屏幕 不同于下面的电源键按钮,关闭屏幕只会熄灭手机屏幕而不会真的锁屏,众所周知手机的屏幕几乎是耗电最高的硬件,那么当设备需要长时间运行时,熄灭屏幕可以延长设备寿命、减少设备散热(更重要的是,屏幕内容将无法被直接看到)。 那么,这是如何实现的呢?起初我以为这是adb原本就支持的功能,但是翻遍了adb的手册也只能找到模拟电源键,即只能实现真锁屏。那就只能去查阅QtScrcpy源码了,顺便也去了解了一下QtScrcpy的工作原理。 QtScrcpy熄屏实现 QtScrcpy实现代码如下 本质上是调用了安卓android.view.SurfaceControl类的setDisplayPowerMode方法来实现,而调用这个方法,需要ACCESS_SURFACE_FLINGER权限,但权限又只有系统app才能申请,那么QtScrcpy是如何解决的呢?答案就是利用adb权限,QtScrcpy会先将scrcpy-server(在源码中是个安卓项目,有main....