从活动中删除Android应用程序

时间:2015-07-01 18:32:10

标签: android

美好的一天!

Android SDK中是否有一些工具可用于从活动中删除应用程序。特别是,我需要活动方法,删除具有相同应用程序名称的其他应用程序,但其他包。

1 个答案:

答案 0 :(得分:0)

如果您的“同名应用程序”指的是具有相同标签的应用程序,并在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();
  }

}