Я пытаюсь выполнить некоторые команды оболочки на устройстве Android программно. Я могу запускать некоторые команды, но не смог запустить их все. В качестве примера я могу выполнить следующие команды:Выполнение команд в оболочке ADB в Android Studio
executeCommandLine(“ls”)
executeCommandLine(“netstat –atun”)
, но теперь мне нужно выполнить следующие команды, которые не выполняются должным образом:
$ adb push netstat3 /data/local/tmp/
$ adb shell
$ chmod 755 /data/local/tmp/netstat3
$ /data/local/tmp/netstat3
Я написал функцию для выполнения выше в Android. Функция дает мне правильный вывод для команд типа «ls» и «netstat -atun», но не дает мне правильного ответа для следующих команд. Моя функция executeCommandLine выглядит следующим образом:
public String executeCommandLine(String commandLine) {
try {
Process process;
process = Runtime.getRuntime().exec(commandLine);
BufferedReader reader = new BufferedReader(
new InputStreamReader(process.getInputStream()));
String read;
StringBuilder output=new StringBuilder();
while ((read = reader.readLine())!=null){
output.append(read);
output.append("\n");
Log.d("executed command ", output.toString());
}
reader.close();
process.waitFor();
return output.toString();
} catch (IOException e) {
throw new RuntimeException(e);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
}
Я хотел бы знать, как я могу получить ответ на все мои команды.
Если я не ошибаюсь, вы хотите сказать, что хотите выполнить эти команды программно на телефоне Android в своем приложении? –
Да, я хочу выполнить программно на телефоне Android в своем приложении. – Bouba
Вы пытаетесь запустить 'adb push' в приложении? –