安卓开发获取已安装的应用

来源:互联网 发布:数码宝贝网络侦探练级 编辑:程序博客网 时间:2024/05/29 23:46
/** * 获取已安装的应用的安装包 * @author Jason * */private class GetApksTask extends AsyncTask<Void, Void, List<App>> {    @Override    protected List<App> doInBackground(Void... params) {        List<App> apps = new ArrayList<App>();        PackageManager pm = getPackageManager();        List<ApplicationInfo> applicationInfos = pm.getInstalledApplications(PackageManager.GET_META_DATA);        for (ApplicationInfo applicationInfo : applicationInfos) {            if ((applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 0 && (applicationInfo.flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) == 0) {                // 非系统应用                App app = new App();                // 图标                  app.setAppIcon(((BitmapDrawable) applicationInfo.loadIcon(pm)).getBitmap());                // 应用程序名称                  app.setAppName(applicationInfo.loadLabel(pm).toString());                // 应用程序包名                  app.setAppPackageName(applicationInfo.packageName);                // 应用路径                app.setPath(applicationInfo.publicSourceDir);                apps.add(app);             }        }        return apps;    }    @Override    protected void onPostExecute(List<App> apps) {        super.onPostExecute(apps);        appList.addAll(apps);        mAppAdapter.notifyDataSetChanged();        cancelProgress();    }}
0 0
原创粉丝点击