Android获取设备上全部应用名称及图片的示例

来源:互联网 发布:智联招聘java 编辑:程序博客网 时间:2024/04/29 12:53

代码示例如下:

1、得到所有应用对应的ResolveInfo

.............private void setupAdapter() {    //创建一个隐式Intent,所有应用的主Activity均能处理该Intent    Intent startupIntent = new Intent(Intent.ACTION_MAIN);    startupIntent.addCategory(Intent.CATEGORY_LAUNCHER);    final PackageManager pm =  getActivity().getPackageManager();    //利用Pkg Mgr解析Intent,得到所有能够处理Intent的Activity的ResolveInfo    List<ResolveInfo> activities = pm.queryIntentActivities(startupIntent, 0);    //排序    Collections.sort(activities, new Comparator<ResolveInfo>() {        @Override        public int compare(ResolveInfo a, ResolveInfo b) {            return String.CASE_INSENSITIVE_ORDER.compare(                    a.loadLabel(pm).toString(),                    b.loadLabel(pm).toString()            );        }    });    mRecyclerView.setAdapter(new ActivityAdapter(activities));}...............

2、解析出ResolveInfo后,就可以从ResolveInfo中获取到应用名称及图片

void bindActivity(ResolveInfo resolveInfo) {    mResolveInfo = resolveInfo;    PackageManager pm = getActivity().getPackageManager();    //得到图片    mImageView.setImageDrawable(mResolveInfo.loadIcon(pm));    //得到名称    String appName = mResolveInfo.loadLabel(pm).toString();    mNameTextView.setText(appName);}

ResolveInfo中还可以得到其它信息,可以参考对应的API。

0 0
原创粉丝点击