【发布时间】:2015-03-27 19:43:59
【问题描述】:
public void uninstallApp(String packageName){
try {
String[] command = new String[4];
command[0] = "su";
command[1] = "mount -o remount,rw /system";
command[2] = "rm " + packageName;
command[3] = "reboot";
Runtime run = Runtime.getRuntime();
run.exec(command);
Log.d("DELETED", packageName);
} catch (Exception e) {
// TODO Auto-generated catch block
Log.e("ERROR ON DELETE", e.getMessage());
}
}
这是我的代码。此方法接收 apk 的路径,我需要做的是执行这些命令但不会丢失权限。我的意思是,如果我在一个进程中执行“su”,然后在另一个进程中执行“mount”。 “mount”没有“su”访问权限。所以我需要在一个进程中执行所有这些命令。那是行不通的。 :\
【问题讨论】:
-
请正确缩进您的代码。您似乎在
catch之前有一个虚假的}。请确保您发布的代码有效。 -
在这种情况下你能定义“不工作”吗?
-
传递给 exec() 的数组不是多条命令,是一条命令,是命令行参数。
-
哦,我修复了额外的 } 。但这不是问题。当我说“它不起作用”时,我的意思是它不执行任何操作。 ci_ 你说的数组不是多个命令。我应该如何执行多个命令?
-
另请参阅When Runtime.exec() won't,了解有关正确创建和处理流程的许多好技巧。然后忽略它引用
exec并使用ProcessBuilder创建进程。
标签: android runtime.exec