【发布时间】:2016-06-24 05:25:25
【问题描述】:
我正在尝试制作一个允许我在 android 中发出命令并给我结果的应用程序。这似乎工作正常,除了等待一段时间以获得更多输出的命令没有得到正确处理。我正在尝试发出命令“su && nmap -sS 192.168.1.1”,我得到的输出只是 nmap 已经启动。有谁知道一种方法,不仅可以获取 nmap 已启动的输出,还可以使用以下代码的修改版本获取扫描结果。
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只是在等待密码? -
您需要关闭作为进程输入的输出流。
标签: java android bufferedreader