碰到一种无线鼠标,在插入之后输入框不弹出输入法,
后来发现并不是所有的无线鼠标都会这样,原来有一部分厂商的无线鼠标
?在插入后是也接入了键盘类型的input?event
那问题就变成了硬件键盘与软件输入法无法同时显示,
修改base/services/input/EventHub.cpp文件中的函数:
openDeviceLocked(......)
在
? ? ?// If the device isn'trecognized as something we handle, don't monitor it. ? ? ? ? ? ? ? ? ? ? ?if (device->classes == 0) { ? ? ? ? ?LOGV("Dropping device: id=%d, path='%s',name='%s'", ? ? ? ? ? ? ? ? ?deviceId,devicePath, device->identifier.name.string()); ? ? ? ? ? ? ? ? ? ? ?? ? ? ? ? ?delete device; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ? ? ? ?return -1; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?} 之前添加以下一行即可:
device->classes&= 0xFFFF & ~INPUT_DEVICE_CLASS_ALPHAKEY;
|