Android,利用PackageManger获取app信息:名称、图标、包名、入口

本文介绍了如何使用Android的PackageManager获取已安装应用的详细信息,包括应用名称、图标、包名和入口Intent。通过queryIntentActivities()方法获取ResolveInfo列表,避免getInstalledApplications()带来的冗余信息。同时,解析了ApplicationInfo和ResolveInfo类的关键属性,以及如何根据包名查询应用名称和入口Intent。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

获取所有已经安装app的信息列表 

这里要使用PackageManager # queryIntentActivities(筛选条件intent,0),结果是ResolveInfo对象列表

基本使用方法:

Intent intent = new Intent();
intent.设置筛选条件;
List<ResolveInfo> list =
       mPackageManager.queryIntentActivities(intent, PackageManager.GET_META_DATA);

如果筛选条件是:intent.setAction(Intent.ACTION_MAIN);//可以自定义action为筛选条件
会把所有带Intent.ACTION_MAIN标签的Activity筛选出来

如果筛选条件是:intent.addCategory(Intent.CATEGORY_LAUNCHER);//不可以自定义category
结果为0,,这是一个无效筛选条件

如果筛选条件是:
intent.setAction(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
搜出来的结果比较正常

如果筛选条件是:没有筛选条件
结果为0,,这是一个无效筛选条件

如果筛选条件是:intent.setPackage(某app包名);
结果为该应用的Activity信息列表

一般不用PackageManager # getInstalledApplications(flag)方法,因为这个方法会把很多杂七杂八的东西都筛选出来,而且搜出来的是ApplicationInfo对象列表,假如一个app有多个入口,就不适用了。

mPackageManage
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值