su命令我試圖執行以下方法:執行從機器人活動
String[] cmds = {"/system/bin/sendevent /dev/input/event0 1 107 0 \n", "sleep 1", "/system/bin/sendevent /dev/input/event0 1 107 1 \n"};
try {
runAsRoot(cmds);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
但在logcat的i。接收如下錯誤::
public void runAsRoot(String[] cmds) throws Exception {
Process p = Runtime.getRuntime().exec("su");
DataOutputStream os = new DataOutputStream(p.getOutputStream());
InputStream is = p.getInputStream();
for (String tmpCmd : cmds) {
os.writeBytes(tmpCmd+"\n");
int readed = 0;
byte[] buff = new byte[4096];
// if cmd requires an output
// due to the blocking behaviour of read(...)
boolean cmdRequiresAnOutput = true;
if (cmdRequiresAnOutput) {
while(is.available() <= 0) {
try { Thread.sleep(200); } catch(Exception ex) {}
}
while(is.available() > 0) {
readed = is.read(buff);
if (readed <= 0) break;
String seg = new String(buff,0,readed);
Log.i("#>", seg);
}
}
}
os.writeBytes("exit\n");
os.flush();
}
我使用以下輸入調用此方法
07-06 15:19:27.007: E/su(6547): sudb - Opening database
07-06 15:19:27.007: E/(6547): Couldn't open database: unable to open database file
07-06 15:19:27.017: E/su(6547): sudb - Could not open database, prompt user
07-06 15:19:47.082: E/su(6547): select failed with 2: No such file or directory
07-06 15:19:47.082: W/su(6547): request rejected (10060->0 /system/bin/sh)
任何想法是什麼問題?
是你的手機植根? – Blackbelt 2012-07-06 09:59:24
我正在模擬器上工作,它的根源是 – 2012-07-06 10:03:53