题
当用户单击按钮时,我将卸载应用程序。用这个代码:
Uri packageURI = Uri.parse("package:"
+ pkNames[position]);
Intent uninstallIntent = new Intent(
Intent.ACTION_DELETE, packageURI);
context.startActivity(uninstallIntent);
但有些应用程序无法卸载。例如设置或音乐或...当我要卸载这些应用程序时,我看到:卸载不成功。
我用以下代码获取包裹:
Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
packages = pm.queryIntentActivities(mainIntent, 0);
如何检测应用程序是否可卸载?
解决方案
您应该通过查看来检查您尝试卸载的应用程序是否是“系统” ApplicationInfo.flags
. 。系统应用有 ApplicationInfo.FLAG_SYSTEM
位设置。这是一小段代码:
boolean isSystem(ApplicationInfo info) {
return (info.flags & ApplicationInfo.FLAG_SYSTEM) != 0;
}
查看 ApplicationInfo 类的文档 其他有用的标志。
不隶属于 StackOverflow