风之空响 发表于 2017-6-20 11:59:00

[风之空响]firefly解决部分游戏/APP只支持触摸操作,不支持鼠标点击的问题

本帖最后由 风之空响 于 2017-7-13 09:51 编辑

***************************************
更新:在7.1上面有点问题,会导致kodi二级菜单不能用
***************************************
之前有群友问过这个问题,今天有空就贴一下解决办法吧。部分游戏/APP只支持触摸操作,不支持鼠标点击的问题,例如现在大热的王者荣耀就是这样,{:4_99:}不要问我是怎么知道的。
其实解决办法很简单,就是在InputReader.cpp中,当鼠标点击操作的时候,把它替换成触摸操作,是不是很简单{:4_124:}
下面贴一下代码:

--- a/frameworks/native/services/inputflinger/InputReader.cpp
+++ b/frameworks/native/services/inputflinger/InputReader.cpp
@@ -2738,6 +2738,14 @@ void CursorInputMapper::sync(nsecs_t when) {
             motionEventAction = AMOTION_EVENT_ACTION_HOVER_MOVE;
         }

+      if(motionEventAction == AMOTION_EVENT_ACTION_DOWN
+             || motionEventAction == AMOTION_EVENT_ACTION_UP)
+         {
+             ALOGD("CursorInputMapper::sync motionEventAction==DOWN or UP");
+             pointerProperties.toolType = AMOTION_EVENT_TOOL_TYPE_FINGER;
+             mSource = AINPUT_SOURCE_TOUCHSCREEN;
+      }
+
         if (buttonsReleased) {
             BitSet32 released(buttonsReleased);
             while (!released.isEmpty()) {
这个修改方式适用于 android4.4.2-android7.0






下面贴一下群友的解决方式frameworks/native/services/inputflinger/InputReader.cpp
    String8 deviceTypeString;
    if (getDevice()->getConfiguration().tryGetProperty(String8("touch.deviceType"),
            deviceTypeString)) {
      if (deviceTypeString == "touchScreen") {
            mParameters.deviceType = Parameters::DEVICE_TYPE_TOUCH_SCREEN;
      } else if (deviceTypeString == "touchPad") {
            mParameters.deviceType = Parameters::DEVICE_TYPE_TOUCH_PAD;
      } else if (deviceTypeString == "touchNavigation") {
            mParameters.deviceType = Parameters::DEVICE_TYPE_TOUCH_NAVIGATION;
      } else if (deviceTypeString == "pointer") {
            mParameters.deviceType = Parameters::DEVICE_TYPE_POINTER;//<font color="#ff0000">此处改为Parameters::DEVICE_TYPE_TOUCH_SCREEN</font>
      } else if (deviceTypeString != "default") {
            ALOGW("Invalid value for touch.deviceType: '%s'", deviceTypeString.string());
      }
    }




zygcs 发表于 2018-5-12 20:43:11

很好啊
页: [1]
查看完整版本: [风之空响]firefly解决部分游戏/APP只支持触摸操作,不支持鼠标点击的问题