Я выполняю команду в Android APK, но я не могу получить правильные результаты - PullRequest
0 голосов
/ 14 января 2019

Я выполняю системную команду в приложении для 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 голосов
/ 14 января 2019

См. здесь , например. Там написано:

Статус выхода:

...

1, если незначительные проблемы (например, не удается получить доступ к подкаталогу)

Возможно, у вашего приложения недостаточно прав для ls всего корневого каталога /.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...