Я пытаюсь создать приложение, которое позволит мне выпускать команды в android и давать мне результаты. Кажется, что он отлично работает, за исключением того, что команды, которые ждут некоторое время для большего вывода, не обрабатываются правильно. Я пытаюсь выдать команду «su & & nmap -sS 192.168.1.1», и все, что я получаю для вывода, это запуск nmap. Кто-нибудь знает способ не только получить вывод, который начал nmap, но и результаты сканирования, используя измененную версию кода ниже.Android java InputStreamReader
try {
EditText inputTxt = (EditText) findViewById(R.id.input);
String str = inputTxt.getText().toString();
Process command = Runtime.getRuntime().exec(str);
BufferedReader reader = new BufferedReader(
new InputStreamReader(command.getInputStream()));
int read;
char[] buffer = new char[4096];
StringBuffer output = new StringBuffer();
while ((read = reader.read(buffer)) > 0) {
output.append(buffer, 0, read);
}
reader.close();
TextView textView = (TextView) findViewById(R.id.textView);
textView.setText(output);
}
catch (IOException e) {
Log.e("Run_Command", Log.getStackTraceString(e));
}
Может быть, 'su' только что ждет пароль? –
Вам необходимо закрыть выходной поток, который является входом в процесс. – EJP