2011-11-23 76 views
2

運行bash腳本,我是新Android應用開發者
我想知道如何從我的Android活動運行bash腳本如何從Android的活動

我這樣做,我發現這裏

public void RunAsRoot(String[] cmds) { 
    Process p = Runtime.getRuntime().exec("su"); 
    DataOutputStream os = new DataOutputStream(p.getOutputStream());    
    for (String tmpCmd : cmds) { 
     os.writeBytes(tmpCmd+"\n"); 
    }   
    os.writeBytes("exit\n"); 
    os.flush(); 
} 

但現在我得到這樣的錯誤很多:

http://i.stack.imgur.com/4N4KC.png

回答

2

我相信,你只需要後置環繞用的try/catch塊ound他們來說,這是一個Java規則,試試這個代碼,而不是:

public void RunAsRoot(String[] cmds) { 
    Process p = null; 
    try { 
     p = Runtime.getRuntime().exec("su"); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    DataOutputStream os = new DataOutputStream(p.getOutputStream());    
    for (String tmpCmd : cmds) { 
     try { 
     os.writeBytes(tmpCmd+"\n"); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    }   
    try { 
     os.writeBytes("exit\n"); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    try { 
     os.flush(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
} 

其次,手動使用su命令,然後命令ID,看是否能成爲一個根,以防萬一。

相關問題