你是说Process process = Runtime.getRuntime().exec();么?我执行do_exec("getevent"); String do_exec(String cmd) { String s = "\n"; try { Process p = Runtime.getRuntime().exec(cmd); BufferedReader in = new BufferedReader( new InputStreamReader(p.getInputStream())); String line = null; while ((line = in.readLine()) != null) { s += line + "\n"; } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } cmd_text.setText(s); return cmd; } 之后程序就一直无法响应,怎么回事?
你是说Process process = Runtime.getRuntime().exec();么?我执行do_exec("getevent"); String do_exec(String cmd) { String s = "\n"; try { Process p = Runtime.getRuntime().exec(cmd); BufferedReader in = new BufferedReader( new InputStreamReader(p.getInputStream())); String line = null; while ((line = in.readLine()) != null) { s += line + "\n"; } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } cmd_text.setText(s); return cmd; } 之后程序就一直无法响应,怎么回事?程序是不是没有root
root了,而且这之前还先运行su获取了权限
你是说Process process = Runtime.getRuntime().exec();么?我执行do_exec("getevent"); String do_exec(String cmd) { String s = "\n"; try { Process p = Runtime.getRuntime().exec(cmd); BufferedReader in = new BufferedReader( new InputStreamReader(p.getInputStream())); String line = null; while ((line = in.readLine()) != null) { s += line + "\n"; } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } cmd_text.setText(s); return cmd; } 之后程序就一直无法响应,怎么回事?程序是不是没有root logcat里是这个错误 07-30 09:47:17.949: W/System.err(19087): java.io.IOException: Error running exec(). Command: [sendevent /dev/input/event0 1 158 1, sendevent /dev/input/event0 0 0 0, sendevent /dev/input/event0 1 158 0, sendevent /dev/input/event0 0 0 0] Working Directory: null Environment: null 07-30 09:47:17.949: W/System.err(19087): at java.lang.ProcessManager.exec(ProcessManager.java:211) 07-30 09:47:17.949: W/System.err(19087): at java.lang.Runtime.exec(Runtime.java:168) 07-30 09:47:17.949: W/System.err(19087): at java.lang.Runtime.exec(Runtime.java:123) 07-30 09:47:17.949: W/System.err(19087): at com.example.getroot.MainActivity.sendevent(MainActivity.java:54) 07-30 09:47:17.949: W/System.err(19087): at java.lang.reflect.Method.invokeNative(Native Method) 07-30 09:47:17.949: W/System.err(19087): at java.lang.reflect.Method.invoke(Method.java:511) 07-30 09:47:17.949: W/System.err(19087): at android.view.View$1.onClick(View.java:3047) 07-30 09:47:17.949: W/System.err(19087): at android.view.View.performClick(View.java:3519) 07-30 09:47:17.949: W/System.err(19087): at android.view.View$PerformClick.run(View.java:14140) 07-30 09:47:17.949: W/System.err(19087): at android.os.Handler.handleCallback(Handler.java:605) 07-30 09:47:17.949: W/System.err(19087): at android.os.Handler.dispatchMessage(Handler.java:92) 07-30 09:47:17.957: W/System.err(19087): at android.os.Looper.loop(Looper.java:137) 07-30 09:47:17.957: W/System.err(19087): at android.app.ActivityThread.main(ActivityThread.java:4424) 07-30 09:47:17.957: W/System.err(19087): at java.lang.reflect.Method.invokeNative(Native Method) 07-30 09:47:17.957: W/System.err(19087): at java.lang.reflect.Method.invoke(Method.java:511) 07-30 09:47:17.957: W/System.err(19087): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 07-30 09:47:17.965: W/System.err(19087): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 07-30 09:47:17.965: W/System.err(19087): at dalvik.system.NativeStart.main(Native Method) 07-30 09:47:17.965: W/System.err(19087): Caused by: java.io.IOException: No such file or directory 07-30 09:47:17.965: W/System.err(19087): at java.lang.ProcessManager.exec(Native Method) 07-30 09:47:17.973: W/System.err(19087): at java.lang.ProcessManager.exec(ProcessManager.java:209) 07-30 09:47:17.973: W/System.err(19087): ... 17 more
第三方输入法返回的键值应该是一样的吧。
我在自己的Activity里重写dispatchTouchEvent(MotionEvent event)和dispatchKeyEvent(KeyEvent event)方法能对其他Activity和输入法有用么?
getevent和sendevent需要/dev/input/event*的权限,可以先ROOT,su后,执行chmod 666 /dev/input/event*。
但是具体方法还希望有人说明
同问
String do_exec(String cmd) {
String s = "\n";
try {
Process p = Runtime.getRuntime().exec(cmd);
BufferedReader in = new BufferedReader(
new InputStreamReader(p.getInputStream()));
String line = null;
while ((line = in.readLine()) != null) {
s += line + "\n";
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
cmd_text.setText(s);
return cmd;
}
之后程序就一直无法响应,怎么回事?
String do_exec(String cmd) {
String s = "\n";
try {
Process p = Runtime.getRuntime().exec(cmd);
BufferedReader in = new BufferedReader(
new InputStreamReader(p.getInputStream()));
String line = null;
while ((line = in.readLine()) != null) {
s += line + "\n";
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
cmd_text.setText(s);
return cmd;
}
之后程序就一直无法响应,怎么回事?程序是不是没有root
String do_exec(String cmd) {
String s = "\n";
try {
Process p = Runtime.getRuntime().exec(cmd);
BufferedReader in = new BufferedReader(
new InputStreamReader(p.getInputStream()));
String line = null;
while ((line = in.readLine()) != null) {
s += line + "\n";
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
cmd_text.setText(s);
return cmd;
}
之后程序就一直无法响应,怎么回事?程序是不是没有root
logcat里是这个错误
07-30 09:47:17.949: W/System.err(19087): java.io.IOException: Error running exec(). Command: [sendevent /dev/input/event0 1 158 1, sendevent /dev/input/event0 0 0 0, sendevent /dev/input/event0 1 158 0, sendevent /dev/input/event0 0 0 0] Working Directory: null Environment: null
07-30 09:47:17.949: W/System.err(19087): at java.lang.ProcessManager.exec(ProcessManager.java:211)
07-30 09:47:17.949: W/System.err(19087): at java.lang.Runtime.exec(Runtime.java:168)
07-30 09:47:17.949: W/System.err(19087): at java.lang.Runtime.exec(Runtime.java:123)
07-30 09:47:17.949: W/System.err(19087): at com.example.getroot.MainActivity.sendevent(MainActivity.java:54)
07-30 09:47:17.949: W/System.err(19087): at java.lang.reflect.Method.invokeNative(Native Method)
07-30 09:47:17.949: W/System.err(19087): at java.lang.reflect.Method.invoke(Method.java:511)
07-30 09:47:17.949: W/System.err(19087): at android.view.View$1.onClick(View.java:3047)
07-30 09:47:17.949: W/System.err(19087): at android.view.View.performClick(View.java:3519)
07-30 09:47:17.949: W/System.err(19087): at android.view.View$PerformClick.run(View.java:14140)
07-30 09:47:17.949: W/System.err(19087): at android.os.Handler.handleCallback(Handler.java:605)
07-30 09:47:17.949: W/System.err(19087): at android.os.Handler.dispatchMessage(Handler.java:92)
07-30 09:47:17.957: W/System.err(19087): at android.os.Looper.loop(Looper.java:137)
07-30 09:47:17.957: W/System.err(19087): at android.app.ActivityThread.main(ActivityThread.java:4424)
07-30 09:47:17.957: W/System.err(19087): at java.lang.reflect.Method.invokeNative(Native Method)
07-30 09:47:17.957: W/System.err(19087): at java.lang.reflect.Method.invoke(Method.java:511)
07-30 09:47:17.957: W/System.err(19087): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
07-30 09:47:17.965: W/System.err(19087): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
07-30 09:47:17.965: W/System.err(19087): at dalvik.system.NativeStart.main(Native Method)
07-30 09:47:17.965: W/System.err(19087): Caused by: java.io.IOException: No such file or directory
07-30 09:47:17.965: W/System.err(19087): at java.lang.ProcessManager.exec(Native Method)
07-30 09:47:17.973: W/System.err(19087): at java.lang.ProcessManager.exec(ProcessManager.java:209)
07-30 09:47:17.973: W/System.err(19087): ... 17 more