4

私の電話はルート化されています。私は非常に単純なプログラムをやろうとしています。プログラムは app/app フォルダーからファイルを削除する必要があります。これどうやってするの?私は初心者なので、サンプルコードは高く評価されています。

4

3 に答える 3

3

お使いの携帯電話がルート化されている場合、 AndroidはLinuxのバリアントであるsuため、ルートスルーとしてコマンドを発行できます(suバイナリが存在し、に存在する場合) 。PATHを介して削除コマンドを実行するだけRuntime.exec()で、スーパーユーザーがアクセス許可プロンプトを処理する必要があります。

これが私がこの質問から取ったその使用法の簡単な例です:

process = Runtime.getRuntime().exec("su");
os = new DataOutputStream(process.getOutputStream());
os.writeBytes(command + "\n");
os.writeBytes("exit\n");
os.flush();
process.waitFor();
于 2012-11-21T09:08:12.200 に答える
1

以下の方法を使用して、フォルダー内のすべてのファイルを再帰的に削除できます。

private void DeleteRecursive(File fileOrDirectory) {
    if (fileOrDirectory.isDirectory())
        for (File child : fileOrDirectory.listFiles())
        {
            child.delete();
            DeleteRecursive(child);
        }

    fileOrDirectory.delete();
}
于 2012-11-21T09:00:50.967 に答える
1

Chainfire は、彼のgithubで、 root としてコマンドを実行するために使用できるクラスのサンプル実装を提供しています。このコマンドは、ファイル (およびフォルダー) を削除するコマンドの Linux 版です。Shellrmrm

コードスニペット:

if(Shell.SU.available()){
   Shell.SU.run("rm /data/app/app.folder.here/fileToDelete.xml"); //Delete command
else{
   System.out.println("su not found");

または、バイナリが利用可能であることが確実suな場合は、delete コマンド (コメント行) を実行して、チェックをスキップできます。

出典:ハウツー SU

于 2013-01-20T20:50:54.137 に答える