我必须使用runtime.getRuntime()。执行:
执行ADB命令 sendevent /dev/input/event2 3 57 0;sendevent /dev/input/event2 3 53 325;sendevent /dev/input/event2 3 54 891;sendevent /dev/input/event2 3 58 71;sendevent /dev/input/event2 3 48 71;sendevent /dev/input/event2 0 0 0;sendevent /dev/input/event2 3 57 4294967295;sendevent /dev/input/event2 0 0 0;
我正在发送此字符串:
String cmd = "sendevent /dev/input/event2 3 57 0;" +
"sendevent /dev/input/event2 3 53 325;" +
"sendevent /dev/input/event2 3 54 891;" +
"sendevent /dev/input/event2 3 58 71;" +
"sendevent /dev/input/event2 3 48 71;" +
"sendevent /dev/input/event2 0 0 0;" +
"sendevent /dev/input/event2 3 57 4294967295;" +
"sendevent /dev/input/event2 0 0 0;";
call(cmd);
在此通话功能中:
private void call( String cmd) {
Process ans_call;
InputStreamReader cmd_reader;
BufferedReader cmd_bufferedReader;
String line = null;
try {
sendMainUIMessage(MSG_KPI_UI_UPDATE_REQUEST, null, cmd);
mLogWriter.writeDiagnoseLog(cmd);
ans_call = Runtime.getRuntime().exec(cmd);
NotifyRunning(ans_call);
cmd_reader = new InputStreamReader(ans_call.getInputStream());
cmd_bufferedReader = new BufferedReader(cmd_reader);
while (((line = cmd_bufferedReader.readLine()) != null)) {
sendMainUIMessage(MSG_KPI_UI_UPDATE_REQUEST, null, line + "n");
mLogWriter.writeDiagnoseLog(line);
} //end of while
ans_call.waitFor();
NotifyEnd(ans_call);
cmd_reader.close();
cmd_bufferedReader.close();
} catch (IOException e) {
Log.e(TAG, "Could not write file " + e.getMessage());
} catch (InterruptedException e) {
Log.e(TAG, "Ping test Fail: InterruptedException");
} //end of try
}
代码运行正常,但我看不到命令被执行。有人可以指出问题吗?
您的应用程序没有写入/dev/input/event2