PackageItemInfo类
说明: AndroidManifest.xml文件中所有节点的基类,提供了这些节点的基本信息:
label、icon、meta-data。它并不直接使用,而是由子类继承然后调用相应方法。
常用字段:
public int icon 获得该资源图片在R文件中的值 (对应于android:icon属性)
public int labelRes 获得该label在R文件中的值(对应于android:label属性)
public String name 获得该节点的name值 (对应于android:name属性)
public String packagename 获得该应用程序的包名 (对应于android:packagename属性)
常用方法:
Drawable loadIcon(PackageManager pm) 获得当前应用程序的图像
CharSequence loadLabel(PackageManager pm) 获得当前应用程序的label
ActivityInfo类----继承自 PackageItemInfo
说明: 获得应用程序中或者 节点的信息 。我们可以通过它来获取 我们设置的任何属性,包括theme 、launchMode、launchmode等.
常用方法继承至PackageItemInfo类中的loadIcon()和loadLabel()
ServiceInfo 类
说明: 同ActivityInfo类似 ,同样继承自 PackageItemInfo,只不过它表示的是 节点信息。
ApplicationInfo类 继承自 PackageItemInfo
说明:获取一个特定引用程序中节点的信息。
字段说明:
flags字段: FLAG_SYSTEM 系统应用程序
FLAG_EXTERNAL_STORAGE 表示该应用安装在sdcard中
常用方法继承至PackageItemInfo类中的loadIcon()和loadLabel()
ResolveInfo类
说明:根据节点来获取其上一层目录的信息,通常是、、 节点信息。
常用字段:
public ActivityInfo activityInfo
获取 ActivityInfo对象,即或节点信息
public ServiceInfo serviceInfo
获取 ServiceInfo对象,即节点信息
常用方法:
Drawable loadIcon(PackageManager pm) 获得当前应用程序的图像
CharSequence loadLabel(PackageManager pm) 获得当前应用程序的label
PackageInfo类
说明:手动获取AndroidManifest.xml文件的信息 。
常用字段:
public String packageName 包名
public ActivityInfo[ ] activities 所有节点信息
public ApplicationInfo applicationInfo 节点信息,只有一个
public ActivityInfo[ ] receivers 所有节点信息,多个
public ServiceInfo[ ] services 所有节点信息 ,多个
PackageManger 类
说明: 获得已安装的应用程序信息 。可以通过getPackageManager( )方法获得。
常用方法:
public abstract PackageManager getPackageManager( )
功能:获得一个PackageManger对象
public abstract Drawable getApplicationIcon(StringpackageName)
参数: packageName 包名
功能:返回给定包名的图标,否则返回null
public abstract ApplicationInfo getApplicationInfo(String packageName, int flags)
参数:packagename 包名
flags 该ApplicationInfo是此flags标记,通常可以直接赋予常数0即可
功能:返回该ApplicationInfo对象
public abstract List getInstalledApplications(int flags)
参数:flag为一般为GET_UNINSTALLED_PACKAGES,那么此时会返回所有ApplicationInfo。我们可以对ApplicationInfo的flags过滤,得到我们需要的。
功能:返回给定条件的所有PackageInfo
public abstract List getInstalledPackages(int flags)
参数如上
功能:返回给定条件的所有PackageInfo
public abstractResolveInfo resolveActivity(Intent intent, int flags)
参数: intent 查寻条件,Activity所配置的action和category
flags: MATCH_DEFAULT_ONLY :
Category必须带有CATEGORY_DEFAULT的Activity,才匹配
GET_INTENT_FILTERS :
匹配Intent条件即可
GET_RESOLVED_FILTER :
匹配Intent条件即可
功能 :返回给定条件的ResolveInfo对象(本质上是Activity)
public abstract List queryIntentActivities(Intent intent, int flags)
参数同上
功能 :返回给定条件的所有ResolveInfo对象(本质上是Activity),集合对象
public abstract ResolveInfo resolveService(Intent intent, int flags)
参数同上
功能 :返回给定条件的ResolveInfo对象(本质上是Service)
public abstract List queryIntentServices(Intent intent, int flags)
参数同上
功能 :返回给定条件的所有ResolveInfo对象(本质上是Service),集合对象
- 大小: 56.7 KB
分享到:
相关推荐
在Android开发中,`PackageManager`是一个至关重要的组件,它提供了...正确地使用`PackageManager`可以极大地增强应用的功能和用户体验。在实际开发中,应根据具体需求灵活运用这些方法,确保应用的安全性和稳定性。
本篇文章将深入探讨如何使用`PackageManager`来获取系统应用程序列表,并提供相关代码示例。 首先,我们需要了解`PackageManager`类。它是Android SDK中的一个接口,位于`android.content.pm`包下。通过`Context....
在Android开发中,`PackageManager` 是一个至关重要的组件,它提供了获取系统中所有安装应用信息的能力,包括应用的包名、名称、图标等。本文将深入探讨如何利用 `PackageManager` 获取系统应用包名并实现根据包名...
Android PackageManager 有很多方法是没有暴漏出来的,我们如果想调用的话需要用Java反射。android_dependency.jar 提供了反射调用相关的class定义,直接放到你的工程libs目录下面,然后就可以进行反射调用...
在Android系统中,PackageManager服务是应用开发者和系统交互的核心组件之一。它负责管理设备上的所有应用程序,包括安装、卸载、查询以及获取应用程序的各种信息。本篇将详细讲解`PackageManager`中的`...
如果是网络资源,需要下载并保存到本地,然后转换为Bitmap对象供PackageManager使用。 3. **适配不同Android版本**:由于Android系统版本差异,动态更换图标的方法可能有所不同。例如,Android 8.0(API级别26)...
### Android中获取应用程序(包)的信息—PackageManager的使用方法 #### 概述 在Android开发过程中,有时我们需要获取系统中应用程序的信息,例如包名(`packagename`)、标签(`label`)、图标(`icon`)以及占用...
接下来,可以使用`FileInputStream`和`FileOutputStream`将APK文件复制到目标位置: ```java File apkFile = new File(applicationInfo.publicSourceDir); File exportApkFile = new File("/path/to/your/directory...
在实际使用中,`packagemanager-master`这个压缩包文件很可能是packagemanager项目的源码仓库。下载并解压后,你可以看到项目的目录结构和源代码,了解其内部实现逻辑。通过阅读和研究,开发者可以学习到如何创建...
总结来说,获取Android应用的大小涉及对`PackageManager`的使用,通过`PackageInfo`对象获取基本信息,并可能需要结合文件系统的API来计算。需要注意的是,应用的大小不仅仅包含APK本身,还包括其数据文件、缓存和...
下面我们将深入探讨如何使用`PackageManager`来获取应用信息,并通过实例代码进行说明。 首先,要获取`PackageManager`的实例,我们通常在Activity或Service中使用`getPackageManager()`方法。例如: ```java ...
Android PackageManager 有很多方法是没有暴漏出来的,我们如果想调用的话需要用Java反射。android_dependency.jar 提供了反射调用相关的class定义,直接放到你的工程libs目录下面,然后就可以进行反射调用...
【Android_PackageManager分析】 Android的PackageManager服务是系统的核心组件之一,它负责管理应用程序的安装、卸载以及应用信息的查询等操作。在Android系统中,PackageManager涉及到的主要知识点包括: 1. **`...
可根据包名打开应用程序(不算系统的)MainActivity里面的getLaunchIntentForPackage里面的("com.wandoujia.phoenix2")需要修改,这里我是用的是豌豆荚的包名,如果没装豌豆荚的请安装,或者包名参数改成你自己的...
使用`getPermissionInfo()`方法,可以获取应用所请求的权限详情。这包括权限的名称、描述、危险级别等。同时,`checkPermission()`方法可以检查某个应用是否已经获得了特定的权限。 4. **卸载应用**: 如果你想...
本篇文章将深入探讨如何使用 `PackageManager` 获取并整理Android设备上的所有安装程序信息。 首先,`PackageManager` 提供了一个名为 `getInstalledPackages(int flags)` 的方法,用于获取设备上所有安装的应用...
在Android系统中,获取最近...4. 使用`PackageManager`获取应用的其他元数据 理解并掌握这些知识点,对于开发能够监控和分析用户行为的应用非常有帮助。同时,尊重用户隐私,确保合法合规地使用这些信息是至关重要的。
一旦`pip`准备就绪,可以使用以下命令安装`packagemanager`: ```bash pip install packagemanager ``` ### 发展历程 `packagemanager`的发展历程反映了Python生态系统中对更高效包管理工具的需求。随着Python...