Android从运行时故障中卸载apk

时间:2016-03-02 12:21:30

标签: android android-studio

(使用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”。

1 个答案:

答案 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);
          }
     }