主页 > 游戏开发  > 

Android12修改usbtp触摸唤醒

Android12修改usbtp触摸唤醒
前言

 Android 12系统休眠时,需要不管接什么型号usb tp都能够触摸唤醒。

Android12系统中,usb tp要能够触摸唤醒,需要在frameworks/native/services/inputflinger/reader/mapper/TouchInputMapper.cpp中将mParameters.wake赋值为true,才能够在系统休眠的时候,触摸usb tp唤醒系统。(在TouchInputMapper.cpp中mParameters.wake的值是由getDeviceContext().isExternal();决定的,getDeviceContext().isExternal();是通过EventHub.cpp中的bool EventHub::Device::isExternalDeviceLocked()获得的。这个函数是通过读取对应tp idc文件中的device.internal属性来决定的。)我们现在要求所有的usb tp的能够触摸唤醒,只需按如下修改即可:

Index: reader/mapper/TouchInputMapper.cpp =================================================================== --- reader/mapper/TouchInputMapper.cpp (revision 2066) +++ reader/mapper/TouchInputMapper.cpp (working copy) @@ -508,7 +508,7 @@ // 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 = getDeviceContext().isExternal(); + mParameters.wake = true; getDeviceContext().getConfiguration().tryGetProperty(String8("touch.wake"), mParameters.wake); }

 

09-20 21:45:13.715 664 818 I InputReader: Disabling eGalax Inc. eGalaxTouch P80H84 2331 v00_T1 k4.10.143 (device 3) because the associated viewport is not active

 修改方法

@@ -664,12 +664,12 @@ return; } - if (!newViewport->isActive) { - ALOGI("Disabling %s (device %i) because the associated viewport is not active", - getDeviceName().c_str(), getDeviceId()); - mDeviceMode = DeviceMode::DISABLED; - return; - } + // if (!newViewport->isActive) { + // ALOGI("Disabling %s (device %i) because the associated viewport is not active", + // getDeviceName().c_str(), getDeviceId()); + // mDeviceMode = DeviceMode::DISABLED; + // return; + // } // Raw width and height in the natural orientation. int32_t rawWidth = mRawPointerAxes.getRawWidth();

 

标签:

Android12修改usbtp触摸唤醒由讯客互联游戏开发栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“Android12修改usbtp触摸唤醒