【发布时间】:2015-09-19 01:34:21
【问题描述】:
美好的一天!
Android SDK 中是否有一些工具可以用来从活动中删除应用程序。特别是,我需要活动方法,该方法可以删除具有相同应用程序名称但其他包的其他应用程序。
【问题讨论】:
-
我认为唯一可用的选项是卸载包的隐含意图。 stackoverflow.com/questions/7868460/…
标签: android
美好的一天!
Android SDK 中是否有一些工具可以用来从活动中删除应用程序。特别是,我需要活动方法,该方法可以删除具有相同应用程序名称但其他包的其他应用程序。
【问题讨论】:
标签: android
如果您的意思是“同名应用程序”与在 XML 清单中定义为您的应用程序标签的标签相同的应用程序,那么这个片段应该可以工作:
private void deleteAppByActivityName(@NonNull String myAppLabel,@NonNull Context context){
try {
PackageManager pm = context.getPackageManager();
Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
List<ResolveInfo> dataInDevice = pm.queryIntentActivities(mainIntent, 0);
for (ResolveInfo resolveInfo : dataInDevice){
String label = resolveInfo.loadLabel(pm).toString();
if (label.equals(myAppLabel)) { //we find app with same name as ours
Intent intent = new Intent(Intent.ACTION_DELETE);
intent.setData(Uri.parse("package:" + resolveInfo.activityInfo.packageName));
context.startActivity(intent);
break;
}
}
}catch (ActivityNotFoundException e){
e.printStackTrace();
}
}
【讨论】: