是否可以模拟从后台应用程序(或服务),或运行sh脚本(即模拟触摸)触摸?
这是需要测试Android系统没有USB或其它连接到PC,这就是为什么我不能(或不要知道如何)使用猴子或其他自动测试工具。
新增的信息:我发现以root运行shell命令(测试设备植根)的方式:
无法通过Android代码来执行的SendEvent外壳命令 (创建触摸模拟)。 上系统分区写入文件 (使用根权限运行命令)
此外,我得到的事件来模拟触摸。
因此,我有:
//sendevent commands to simulate touch (verify it work from cmd)
String[] touchEvent = { "sendevent /dev/input/event0 0 0 0\n",
"sendevent /dev/input/event6 3 53 499\n",
"sendevent /dev/input/event6 3 54 680\n",
"sendevent /dev/input/event6 3 58 40\n",
"sendevent /dev/input/event6 3 48 3\n",
"sendevent /dev/input/event6 3 57 0\n",
"sendevent /dev/input/event6 0 2 0\n",
"sendevent /dev/input/event6 0 0 0\n",
"sendevent /dev/input/event6 0 2 0\n",
"sendevent /dev/input/event6 0 0 0\n",
"sendevent /dev/input/event0 3 0 2\n",
"sendevent /dev/input/event0 0 0 0\n"};
try{
Thread.sleep(2000);
Process root = Runtime.getRuntime().exec("su");
DataOutputStream os = new DataOutputStream(root.getOutputStream());
for(int i = 0; i < touchEvent.length; i++){
Log.i(TAG, touchEvent[i]);
os.writeBytes(touchEvent[i]);
os.flush();
}
root.waitFor();
} catch (IOException e) {
Log.e(TAG, "Runtime problems\n");
e.printStackTrace();
} catch (SecurityException se){
se.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
我没有任何异常,但不碰会模拟。
任何人可以帮助解决这个问题?
如果有另一种方式与Android NDK或守护程序做C的,请告诉我这件事。
谢谢。