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

时间:2009-05-21 02:18:22

标签: android

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

4 个答案:

答案 0 :(得分:15)

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

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

答案 1 :(得分:5)

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

install / uninstall APKs programmatically (PackageManager vs Intents)

答案 2 :(得分:1)

在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更改为其他应用的任何包名称。

答案 3 :(得分:1)

第三方应用无法以静默方式卸载应用程序!

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

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