题 是否可以以编程方式卸载Android中的软件包


包可以自行卸载吗?如果包共享相同的userId和签名,是否可以卸载另一个包?


32
2018-05-21 02:18


起源


请问...我知道有一个名为easy uninstall的第三方应用程序让你卸载软件包,所以也许我们应该查看源代码。 - e-satis


答案:


嘿可能为时已晚,但这对我有用。

Uri packageURI = Uri.parse("package:"+"your.packagename.here");
    Intent uninstallIntent = new Intent(Intent.ACTION_DELETE, packageURI);
    startActivity(uninstallIntent);

12
2017-07-13 11:55





第三方应用无法以编程方式安装或卸载任何其他软件包,这对Android来说是一个安全风险。但是第三方应用可以  使用Intent安装或卸载软件包的Android OS,这个问题应该提供更完整的信息:

以编程方式安装/卸载APK(PackageManager vs Intents)


5
2018-03-08 18:30



2017年我们可以吗? - Aditay Kaushal


在Kotlin中,使用API​​ 14+,您只需调用以下内容:

startActivity(Intent(Intent.ACTION_UNINSTALL_PACKAGE).apply {
     data = Uri.parse("package:$packageName")
})

或者使用Android KTX:

startActivity(Intent(Intent.ACTION_UNINSTALL_PACKAGE).apply {
     data = "package:$packageName".toUri()
})

它将显示您的应用程序的卸载提示。你可以改变 packageName 如果需要,可以使用其他应用的任何包名称。


1
2017-10-18 19:51





第三方应用程序无法无提示地卸载应用程序!

您需要成为系统应用程序才能获得 DELETE_PACKAGES 权限,你需要显示卸载弹出窗口(用户确认)

或者,您可以获取“辅助功能”权限,然后通过显示“辅助功能叠加”,您可以告诉您的服务单击 卸载 按钮!


0
2018-03-29 20:20