问题背景:项目代码中通过以下函数模拟发送按键事件:
/**
* 传入需要的键值即可* 需要系统权限
* @param keyCode
*/
public static void sendKeyCode(final int keyCode){
LOG.print("sendKeyCode --- keyCode = " + keyCode);
new Thread () {
public void run() {
try {
Instrumentation inst = new Instrumentation();
inst.sendKeyDownUpSync(keyCode);
} catch (Exception e) {
e.printStackTrace();
}
}
}.start();
}
正常情况下,通过该函数发送的模拟按键事件,是能够导致dispatchKeyEvent(KeyEvent event)这函数被调用的。但是项目中却始终没有被调用。那是什么原因引起的呢??
经查是因为这个系统中没有安装任何输入法的apk而导致的这个问题。