阅读:6849回复:7
安卓浅休眠后如何通过触摸唤醒?
我们调试的是Amlogic T962E-7.1平台的的触摸屏产品
powerManager.goToSleep()后,系统会进入浅休眠,此时屏幕是熄屏的。网络是关闭的。通过串口打印可以看见,后台Service里的子线程还是一直在运行的。 此时按遥控的电源键和返回键是可以唤醒的,用户希望通过按触摸屏来唤醒。这个应该怎么做呢? 我看了网上的回答是修改:framework/native/service/inpuflinger/InputReader.cpp 里面 // Initial downs on external touch devices should wake the device. // Normally we don't do this for internal touch screens to prevent them from waking // up in your pocket but you can enable it using the input device configuration. - mParameters.wake = getDevice()->isExternal(); + mParameters.wake = true; 看注释的意思应该就是通过触摸唤醒屏幕的。RK3288-7.1修改这里后是可以触摸唤醒的, 但是Amlogic T962E 和 S912试过了,改这个地方都不行。不知道是在哪里还做了处理 有知道怎么修改的老铁吗?? |
|
|
沙发#
发布于:2020-04-12 13:59
我发现休眠后PhoneWindowManager里面就无法收到按键事件和触摸事件了。 系统休眠后按键事件和触摸事件在 framework/native/service/inpuflinger/InputReader.cpp 这个文件相应的地方 都是有打印的。研究了好几天了,不知道他是怎么在这个地方处理Power键和返回键来唤醒的。要是找到了他唤醒的逻辑,仿照一下,在这里做一个触摸唤醒应该是可行的。 |
|
|
板凳#
发布于:2020-04-12 14:02
看注释的话,应该就是修改网友说的这个地方,安卓公版的就是为了防止手机在口袋里面,误操作导致唤醒屏幕。强行设置为true就可以触摸唤醒了。RK是可以的, 不知道Amlogic在哪里又做了什么处理。问了他们一直没有回应。。。
|
|
|
地板#
发布于:2020-04-13 10:35
今天在编译android源码中的APP时发现,竟然无法使用系统隐藏的API,比如android.os.ServiceManager中的API和import android.os.SystemProperties; 引用这个类时提示错误,记忆中在android源码中的APP是可以使用隐藏的API的,为什么这个不行?
百思不得其解,最后通过对比mk文件发现,在mk文件中多了一句:LOCAL_SDK_VERSION := current,顿时发现问题所在 注释掉这句之后,重新mmm编译通过。 |
|
|
6楼#
发布于:2020-07-11 14:50
|
|
7楼#
发布于:2020-07-14 11:10
|
|
|