我的手机已经root了。我正在尝试做一个非常简单的程序。程序应该从 app/app 文件夹中删除文件。我怎样才能做到这一点?我是新手,所以示例代码很有价值。
问问题
6533 次
3 回答
3
如果您的手机已获得 root 权限,则您可以以 root 身份发出命令——前提su
是su
二进制文件存在并且在您的手机中PATH
——因为 Android 是 Linux 的一个变体。只需通过 执行删除命令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
在他的github 上,Chainfire 提供了一个类的示例实现,您可以使用它以rootShell
身份执行命令。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
二进制文件可用,您可以运行删除命令(注释行)并跳过检查
来源:如何苏
于 2013-01-20T20:50:54.137 回答