如何从android活动运行bash脚本

时间:2011-11-23 04:24:06

标签: android bash android-activity

我是新的Android应用开发者 我想知道如何从我的android活动中运行bash脚本

我这样做是我在这里找到的

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

1 个答案:

答案 0 :(得分:2)

我相信你只需要用 try / catch 块来包围它们,这是一个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以查看是否可以成为root用户,以防万一。