当前位置: 代码迷 >> Android >> 求教 Android 按键监听和按键模拟有关问题
  详细解决方案

求教 Android 按键监听和按键模拟有关问题

热度:58   发布时间:2016-05-01 14:19:18.0
求教 Android 按键监听和按键模拟问题
问题一:Android 程序能在后台监听按键么?就像输入法那种监听一样,只要有按键它就能弹出软键盘?
能直接在程序里像BroadcastReceiver这样获得键盘按下的消息并进行处理么?相当于后台键盘记录器
 我只找到了android.intent.action.CAMERA_BUTTON 和android.intent.action.MEDIA_BUTTON

问题二: Android能实现模拟按键么?
我搜索到要使用的IWindowManager和ServiceManager好像在1.6以后的版本就没法使用了
不知道大家有些什么办法?或者提供一起其他模拟按键的方法


------解决方案--------------------
1.看下输入法的结构机制吧,apidemo中有流程,应该是可以的
2.模拟按键当然可以,发送一个keycode就可以了
Java code
        InputConnection ic = getCurrentInputConnection();        if ( null != ic ){                    //code种类有很多            ic.sendKeyEvent(                    new KeyEvent(KeyEvent.ACTION_DOWN, keyEventCode));                ic.sendKeyEvent(                    new KeyEvent(KeyEvent.ACTION_UP, keyEventCode));            }
------解决方案--------------------
Java code
Robot robot = new Robot();robot.keyPress(KeyEvent.VK_RIGHT);
------解决方案--------------------
可以在framework中调用iwindowmanager编译成jar放到system/framework下,然后用aprocess通过shell调用就可以实现模拟按键了,可以创建测试工程,使用inst然模拟发送按键消息
  相关解决方案