我的手机扎根了。我正在尝试做一个非常简单的程序。该程序应从app / app文件夹中删除文件。我怎样才能做到这一点?我是新手,所以示例代码很有价值。
答案 0 :(得分:3)
如果您的手机是root用户,则可以通过su
以root身份发出命令 - 前提是su
二进制文件存在且位于PATH
- 因为Android是Linux的变体。只需通过Runtime.exec()
执行删除命令,超级用户应该处理权限提示。
以下是我使用from this question的一个简单示例:
process = Runtime.getRuntime().exec("su");
os = new DataOutputStream(process.getOutputStream());
os.writeBytes(command + "\n");
os.writeBytes("exit\n");
os.flush();
process.waitFor();
答案 1 :(得分:1)
您可以使用以下方法以递归方式删除文件夹中的所有文件。
private void DeleteRecursive(File fileOrDirectory) {
if (fileOrDirectory.isDirectory())
for (File child : fileOrDirectory.listFiles())
{
child.delete();
DeleteRecursive(child);
}
fileOrDirectory.delete();
}
答案 2 :(得分:1)
在他的github上,Chainfire提供sample implementation个Shell
类,您可以使用该类以root身份执行rm
命令。 rm
命令是删除文件(和文件夹)命令的Linux变体。
代码段:
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
二进制文件可用,您只需运行删除命令(注释行)并跳过检查
来源:How-To SU