请教大家一个很最近很纠结的问题:我在Service里面用Instrumentation中的发送按键函数实现了按键的模拟,但是遇到一个问题:发送HOME键以后,再发送其他的按键会报错。是不是因为Instr只能针对一个Activity进行测试?我的目标是想实现与具体Activity无关的按键模拟,起初用Service来做的原因就是原以为可以在不同的Activity中切换并注入按键。可是总是报错...!! 无奈来请教大家,有什么办法解决这个问题吗? 如果需要用Iwindowmanager的话,应该如何编译通过? 坐等答案..
------解决方案--------------------
------解决方案--------------------
Instrumentation只能给被测试的那个activity发按键 给其他发会报错 权限不够
Iwindowmanager在源码环境下编译就能过
------解决方案--------------------
Activity不一样,你的keyevent收到的就不样,你必须指定将keyevent发送到那个activity中。
------解决方案--------------------
IWindowManager和Activity无关,你可以编译成一个shell命令向全系统发送事件,当然,前提是root的shell
------解决方案--------------------
一般的key都是发给当前运行的apk,但是home例外,因为系统会相应它。系统相应会回到主界面,导致所有的程序开始进入pause状态。所以当你再按别的键,就没活动的窗口去接受了。
------解决方案--------------------
你看一下 phonewindowsmanager.java吧
我记得Home和power的按键响应是在这里面实现的
你自己改一下响应函数就应该ok了
------解决方案--------------------