Android之快捷卸载第三方应用

Android之快捷卸载第三方应用:

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); 
}

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/effb18b9294d95cacabe9b813802d8c0.html