通过包管理器无需用户交互即可卸载应用程序?

时间:2016-09-25 14:36:46

标签: android package uninstall android-package-managers

我是一名新的Android开发人员,正在尝试制作一个包管理器应用。我列出了所有已安装的应用程序,现在我想在没有用户交互的情况下卸载特定的应用程序。是否可以使用无根电话?

1 个答案:

答案 0 :(得分:0)

PackageManager类包含@hide method : deletePackage。但是你不能使用它,因为:

  1. 这是一个隐藏的方法,因此在普通应用程序中调用它的唯一方法是使用反射(不建议这样做,因为它可能会在未来版本的Android API中中断)

  2. 此方法的使用需要权限android.Manifest.permission#DELETE_PACKAGES,并且此权限只能授予使用系统密钥签名的应用。 (即使您在清单中询问此权限,除非您的应用程序使用系统密钥签名,否则它将无法获得授权)

  3. 因此,您无法在简单/标准应用中执行此操作。您唯一的解决方案(在非根电话上)是使用系统密钥对您的应用进行签名,为此您需要与制造商协商,以便您的应用使用系统密钥进行签名。

相关问题