android應用程式執行shell指令碼命令
跪求大神指點~!
小菜在做一個android應用程式,需要執行系統呼叫命令,然後我考慮將命令寫在.sh腳本里,直接呼叫指令碼執行。
但是呼叫一直不成功。
我具體用到了如下行的函式呼叫,系統命令寫入了xxxxx.sh裡
Process proc=Runtime.getRuntime().exec("/system/bin/sh /system/bin/xxxxx.sh");
請懂這個的朋友指點下,謝謝!!
------解決方案--------------------
這是方法,新增到你的應用程式中即可,比較簡陋,呵呵!
public void execShell(String cmd){
try{
//許可權設定
Process p = Runtime.getRuntime().exec("su");
//獲取輸出流
OutputStream outputStream = p.getOutputStream();
DataOutputStream dataOutputStream=new DataOutputStream(outputStream);
//將命令寫入
dataOutputStream.writeBytes(cmd);
//提交命令
dataOutputStream.flush();
//關閉流操作
dataOutputStream.close();
outputStream.close();
}
catch(Throwable t)
{
t.printStackTrace();
}
}
------解決方案--------------------
先要確認 你在指令碼是否能正常在adb.exe視窗 環境下正常執行 指令碼讀寫許可權要注意的
如果能正常執行那麼
... oncreate(){
test3()
}
private void test3() {
execCommand1("system/bin/xxxx.sh");
}
public boolean execCommand1(String cmd) {
Process process = null;
try {
process = Runtime.getRuntime().exec(cmd);
process.waitFor();
} catch (Exception e) {
return false;
} finally {
try {
process.destroy();
} catch (Exception e) {
}
}
return true;
}