您好我正在尝试从应用程序执行 shell 命令。尽管代码运行没有任何错误,但看不到输出。例如,我正在尝试复制文件。此命令工作正常,同时通过 shell 命令提示符执行。这是我使用的代码。从 LogCat 中的调试语句,我可以知道所有的代码块都被覆盖了。但是文件没有被复制。请提出解决方案。PS:我通过模拟器运行这个..
@Override
public void onClick(View v) {
if (v.getId() == R.id.click_button){
String[] commands = {"cp /mnt/sdcard/rr.txt /mnt/sdcard/zzzz.txt"};
try {
Log.d("Ac","before fun call.....");
RunAsRoot(commands);
Log.d("Ac","after fun call...");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public void RunAsRoot(String[] cmds) throws IOException{
Process p = Runtime.getRuntime().exec("su");
DataOutputStream os = new DataOutputStream(p.getOutputStream());
for (String tmpCmd : cmds) {
os.writeBytes(tmpCmd+"\n");
Log.d("Ac","inside...");
}
os.writeBytes("exit\n");
Log.d("Ac","outsidee...");
os.flush();
}
}