问题是——我的应用程序从 UI POV 获得管理员权限非常容易。但是,一旦应用程序拥有这些权限,卸载它就很麻烦(用户必须首先撤销这些管理员权限;如果没有,卸载时没有信息说明卸载出了什么问题——至少在 Ace 2 Android 2.3 上)。
因此,在应用程序中具有卸载功能会很有用——它会首先撤销管理员权限,然后进行正常卸载。
另一种方法是通知应用程序即将被卸载,但是 AFAIK 这是不可能的 - 请参阅:http ://code.google.com/p/android/issues/detail?can=2&q=33315&colspec=ID% 20Type%20Status%20Owner%20Summary%20Stars&id=33315
到目前为止,我只提出了解决方法——如果应用程序已准备好卸载,请添加一个带有状态信息的“清除卸载”按钮,以便为用户节省问题。但随后用户必须采取另一个步骤来卸载我的应用程序。总之很麻烦。
那么——如何卸载自我?
解决方案
只是为了将代码保留在 SO 网站上:
Uri packageURI = Uri.parse("package:"+MyMainActivity.class.getPackage().getName());
Intent uninstallIntent = new Intent(Intent.ACTION_DELETE, packageURI);
startActivity(uninstallIntent);