我在android apk中执行命令,但无法获得正确的回报

时间:2019-01-14 11:37:27

标签: java android linux shell system

我在android应用中执行系统命令,但是我无法正确执行结果。

这是我的代码:

String cmd = "ls /";

try {
    Process p = Runtime.getRuntime().exec(cmd);
    InputStream stdout = p.getInputStream();

    BufferedReader reader = new BufferedReader(new InputStreamReader(stdout));

    p.waitFor();

    if (p.exitValue() != 0) {
        System.out.println(p.exitValue());
        Log.d("test",p.exitValue()+" ");
    }

    String s;
    List<String> stdout_list = new ArrayList<>();
    while ((s = reader.readLine()) != null) {
        Log.d("test", s);
        s = s + "\n";
        stdout_list.add((String)s);
    }

    callableGetData.stdout_list = stdout_list;
} catch(Exception e) {
         System.out.println(e);
}

cmd,例如ls,将得到错误的答案1,但是如果我使用ps -A,则会得到正确的答案。错误的答案1可能是exitValue()

这是什么原因造成的?

1 个答案:

答案 0 :(得分:0)

例如,请参见here。它说:

  

退出状态:

     

...

     

1,如果有小问题(例如,无法访问子目录)

您的应用可能没有足够的权限来ls整个根目录/