Android之快捷卸載第三方應用

來源:互聯網
上載者:User

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.