(使用android studio)我想使用运行时从我的设备上卸载apk。 我不知道为什么如果我安装一个apk它可以工作,但如果我卸载不。 我写了这段代码:
private int DoAction(String apkPackage) {
try {
String res = "";
Process p = Runtime.getRuntime().exec("su\n");
DataOutputStream o = new DataOutputStream(p.getOutputStream());
InputStream i = p.getInputStream();
o.writeBytes("pm");
o.writeBytes(" ");
o.writeBytes("uninstall");
o.writeBytes(" ");
o.writeBytes(apkPackage);
o.writeBytes("\n");
o.writeBytes("exit");
o.writeBytes("\n");
o.flush();
p.waitFor();
res = StreamToString(i);
return p.exitValue();
}
} catch (Exception e) {
return -999999;
}
}
所以DataOutputStream将是:
pm uninstall apkPackage
exit
但res值始终为“FAILURE”。
我已经添加了权限:“android.permission.DELETE_PACKAGES”。
答案 0 :(得分:0)
卸载任何应用程序只需将包名称传递给此方法
//calling
DoAction("your package name");
// method definition
private void DoAction(String apkPackage) {
try {
Intent intent = new Intent(Intent.ACTION_DELETE);
intent.setData(Uri.parse("package:"+apkPackage));
startActivity(intent);
}
}