前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android之获取packageinfo相关

Android之获取packageinfo相关

作者头像
李小白是一只喵
发布2021-01-13 10:01:13
1.4K0
发布2021-01-13 10:01:13
举报
文章被收录于专栏:算法微时光

image.png

根据PackageInfo对象获取APP信息

PackageInfo类包含AndroidManifest.xml文件的信息。

常用字段

含义

String packageName

包名

ActivityInfo[] activities

所有<activity>节点信息

ApplicationInfo applicationInfo

<application>节点信息,只有一个

ActivityInfo[] receivers

所有<receiver>节点信息,多个

ServiceInfo[] services

所有<service>节点信息 ,多个

获取APP信息方式:

代码语言:javascript
复制
ApplicationInfo applicationInfo = packageInfo.applicationInfo;
// APP 包名
String packageName = packageInfo.packageName;
// APP icon
Drawable icon = packageManager.getApplicationIcon(applicationInfo);
// APP 名称
String appName = packageManager.getApplicationLabel(applicationInfo).toString();
// APP 权限
String[] permissions = packageManager.getPackageInfo(packageName,PackageManager.GET_PERMISSIONS).requestedPermissions;
ApplicationInfo类

ApplicationInfo是android.content.pm包下的一个实体类,用于封装应用的信息,flags是其中的一个成员变量public int flags = 0;用于保存应用的标志信息。

ApplicationInfo 可以得到一个应用基本信息。这些信息是从AndroidManifest.xml的< application >标签获取的

ApplicationInfo对象里保存的信息都是<application>标签里的属性值

ApplicationInfo与ResolveInfo比较:前者能够得到Icon、Label、meta-data、description。后者只能得到Icon、Label

字段说明

含义

flags字段

-

FLAG_SYSTEM

系统应用程序

FLAG_EXTERNAL_STORAGE

表示该应用安装在sdcard中

获取手机上安装所有程序对应的 ApplicationInfo
代码语言:javascript
复制
/**
* 获取手机上安装的所有的程序对应的 ApplicationInfo
* 它是通过解析AndroidManifest.xml的< application>标签中得到的,所以它能得到所有的app
*
* 获取手机上的所有的安装的应用程序信息
*  参数为 标识   一般为 PackageManager.GET_UNINSTALLED_PACKAGES
*/
List<ApplicationInfo> list = packageManager.getInstalledApplications(PackageManager.GET_UNINSTALLED_PACKAGES);
获取指定包名对应的 ApplicationInfo
代码语言:javascript
复制
 /**
* 获取指定应用程序  ApplicationInfo
*  参数一对应应用程序的包名
*  参数二 应用程序对应的标识  通常为 0
*/
ApplicationInfo applicationInfo = 
packageManager.getApplicationInfo("com.androidlongs.contactsapplication", 0);
ResolveInfo类

ResolveInfo这个类是通过解析一个与IntentFilter相对应的intent得到的信息。它部分地对应于从AndroidManifest.xml的< intent>标签收集到的信息。

常用字段

含义

ActivityInfo activityInfo

获取 ActivityInfo对象,即<activity>或<receiver>节点信息

ServiceInfo serviceInfo

获取 ServiceInfo对象,即<service>节点信息

根据ResolveInfo对象获取APP信息:

代码语言:javascript
复制
// APP包名
resolve.activityInfo.packageName;
// APP icon
resolve.loadIcon(packageManager);
// APP名称
resolve.loadLabel(packageManager).toString();
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 根据PackageInfo对象获取APP信息
    • ApplicationInfo类
      • ResolveInfo类
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档