나는 안드로이드에서 명령을 내리고 결과를 알려주는 애플리케이션을 만들려고한다. 이것은 더 나은 출력을 위해 잠시 동안 기다리는 명령이 올바르게 처리되지 않는다는 예외적 인 경우에도 잘 작동하는 것 같습니다. "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