я пытаюсь написать на «/ MyFolder/данных» папку на андроид виртуального устройства во время испытания и сделать это, я делаю:процесс Android Java возвращает 1 при выполнении «су»
String[] cmd ={"su", "mkdir", dir};
int out = 99;
try {
Process p = Runtime.getRuntime().exec(cmd);
out = p.waitFor();
BufferedInputStream in = new BufferedInputStream(p.getErrorStream());
byte[] bytes = new byte[4096];
while (in.read(bytes) != -1) {
}
in.close();
logger.info("exit status:" + out);
} catch (IOException e) {
logger.severe("IOException " + e.getMessage());
e.printStackTrace();
} catch (InterruptedException e) {
logger.severe("InterruptedException " + e.getMessage());
e.printStackTrace();
}
if (out != 0) {
logger.severe("Folder " + dir + " not created,exit status: " + out);
}
или я пробовал
String cmd ={"su mkdir" + dir};
, но статус выхода 1, и он не создает папку. используя su mkdir/data/myFolder из оболочки adb отлично работает. Почему этот код? что значит? (я знаю, это означает, что что-то пошло не так, но что? не нашел никакой документации о значениях кода выхода Android android mkdir). Спасибо-х
Что произойдет, если добавить пробел в вещь, которую вы пытались: 'Строковые CMD =«Су MKDIR»+ реж;'? – Jite
Возможный дубликат [что означает su: process = Runtime.getRuntime(). Exec ("su");] (http://stackoverflow.com/questions/6100662/what-does-the-su-mean- process-runtime-getruntime-execsu) – Torben
Я получаю тот же код ошибки (1) – idell