获取所有的应用信息PackageManager
Android通过PackageManager来管理应用程序包,我们可以使用它获取当前Android设备上的应用程序的信息。可以使用getPackageManager()方法获取该对象。使用getInstalledPackages(0)获取设备上所有的应用程序信息。如下:
PackageManager packageManager=getActivity().getPackageManager();
List<PackageInfo> list=packageManager.getInstalledPackages(0);
for (PackageInfo info:list) {
}
使用getInstalledPackages(int flag)方法获得一个设备上的应用程序的列表(通常flag取0)。参数flag为附加选项,指定对应的flag,可以获取一些额外的信息(对应的参数返回对应的额外信息)。你可以使用以下参数的任意组合(作按位或运算)来修改(不同的flag,返回的列表长度可能不同,应用程序的得到信息维度也可能不同)返回的数据:
// “GET_ ” 开头的flag :用于请求额外的数据,其他数据可能会被省去以节省线空间。(返回不同维度的应用信息)
//“MATCH_”开头的flag:用于包含组件或包,否则将由当前系统状态从结果集中省略。(返回的列表长度可能不同)
- GET_ACTIVITIES //会在PackageInfo对象的activitys返回应用程序包的关于activity的信息
- GET_CONFIGURATIONS //会在PackageInfo的configPreferences中返回硬件偏好信息,并在reqFeatures和featureGroups中请求特性
- GET_GIDS //返回与应用程序相关的Gids
- GET_INSTRUMENTATION //在instrumentation属性中返回应用程序的仪表仪器的相关信息
- GET_INTENT_FILTER