Android之快捷卸载第三方应用

来源:互联网 发布:php curl post 图片流 编辑:程序博客网 时间:2024/05/17 07:35

1、需要的权限:

<uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />

2、获取所有应用:

public List<ResolveInfo> getAllPagckage(Context context){PackageManager pm = context.getPackageManager(); Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);// 通过查询,获得所有ResolveInfo对象.List<ResolveInfo> resolveInfoList = pm.queryIntentActivities(mainIntent, PackageManager.GET_GIDS);// 调用系统排序,根据name排序Collections.sort(resolveInfoList,new ResolveInfo.DisplayNameComparator(pm));return resolveInfoList;}

3、过滤出第三方应用:

private void filterPackage(List<ResolveInfo> allPackageList){if (!allPackageList.isEmpty()){list.clear();int size = allPackageList.size();ResolveInfo resolveInfo = null;for (int i = 0; i < size; i++){resolveInfo = allPackageList.get(i);// 第三方应用if((resolveInfo.activityInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) <= 0){list.add(resolveInfo);}}}}

4、卸载:
(注:1、两种方式均可;2、appPackage为resolveInfo.activityInfo.packageName)
public void uninstallApp(Context context, String appPackage){Uri packageURI = Uri.parse("package:" + appPackage);        //自定义卸载// Intent uninstallIntent = new Intent(Intent.ACTION_DELETE,// packageURI);//((Activity)context).startActivityForResult(uninstallIntent, 0);        //调用系统自带卸载操作进行卸载Intent uninstallIntent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS, packageURI);context.startActivity(uninstallIntent);}


原创粉丝点击