繁体   English   中英

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

[英]Is it possible to programmatically uninstall a package in Android

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

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

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

第三方应用程序无法以编程方式安装或卸载任何其他软件包,这将对Android构成安全隐患。 但是,第三方应用程序可以要求 Android OS使用意图安装或卸载软件包,此问题应提供更完整的信息:

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

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

您需要成为System App以获得DELETE_PACKAGES权限,否则您需要显示卸载弹出窗口 (用户确认)

或者,您可以获取“可访问性”权限,然后显示“可访问性覆盖”,可以告诉您的服务单击“ 卸载”按钮! 但这将侵犯隐私。

在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更改为另一个应用程序的任何软件包名称。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM