包可以自行卸载吗?如果包共享相同的userId和签名,包是否可以卸载另一个包?
答案 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)
第三方应用无法以静默方式卸载应用程序!
您需要成为系统应用程序才能获得 DELETE_PACKAGES 权限,否则您需要显示卸载弹出窗口(用户确认)
或者,您可以获取“辅助功能”权限,然后通过显示“辅助功能叠加”,您可以告诉您的服务点击卸载按钮!
答案 3 :(得分: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
更改为其他应用的任何包名称。