こんにちは私はアプリからシェルコマンドを実行しようとしています。コードはエラーなしで実行されますが、出力は表示されません。例として、私はファイルをコピーしようとしています。このコマンドは、シェルコマンドプロンプトを介して実行している間は正常に機能します。これが私が使用したコードです。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();
}
}