`

PackageManager 使用

阅读更多

 

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的使用

    在Android开发中,`PackageManager`是一个至关重要的组件,它提供了...正确地使用`PackageManager`可以极大地增强应用的功能和用户体验。在实际开发中,应根据具体需求灵活运用这些方法,确保应用的安全性和稳定性。

    PackageManager获取安装的应用列表

    本篇文章将深入探讨如何使用`PackageManager`来获取系统应用程序列表,并提供相关代码示例。 首先,我们需要了解`PackageManager`类。它是Android SDK中的一个接口,位于`android.content.pm`包下。通过`Context....

    packageManager得到系统应用包名打开应用程序

    在Android开发中,`PackageManager` 是一个至关重要的组件,它提供了获取系统中所有安装应用信息的能力,包括应用的包名、名称、图标等。本文将深入探讨如何利用 `PackageManager` 获取系统应用包名并实现根据包名...

    android PackageManager 反射调用相关的类android_dependency.jar

    Android PackageManager 有很多方法是没有暴漏出来的,我们如果想调用的话需要用Java反射。android_dependency.jar 提供了反射调用相关的class定义,直接放到你的工程libs目录下面,然后就可以进行反射调用...

    PackageManager实例

    在Android系统中,PackageManager服务是应用开发者和系统交互的核心组件之一。它负责管理设备上的所有应用程序,包括安装、卸载、查询以及获取应用程序的各种信息。本篇将详细讲解`PackageManager`中的`...

    AppIconDemo-master.zip

    如果是网络资源,需要下载并保存到本地,然后转换为Bitmap对象供PackageManager使用。 3. **适配不同Android版本**:由于Android系统版本差异,动态更换图标的方法可能有所不同。例如,Android 8.0(API级别26)...

    Android中获取应用程序(包)的信息-PackageManager的使用方法

    ### Android中获取应用程序(包)的信息—PackageManager的使用方法 #### 概述 在Android开发过程中,有时我们需要获取系统中应用程序的信息,例如包名(`packagename`)、标签(`label`)、图标(`icon`)以及占用...

    PackageManager获取App基本信息实现Apk导出、分享、卸载

    接下来,可以使用`FileInputStream`和`FileOutputStream`将APK文件复制到目标位置: ```java File apkFile = new File(applicationInfo.publicSourceDir); File exportApkFile = new File("/path/to/your/directory...

    Laravel开发-packagemanager

    在实际使用中,`packagemanager-master`这个压缩包文件很可能是packagemanager项目的源码仓库。下载并解压后,你可以看到项目的目录结构和源代码,了解其内部实现逻辑。通过阅读和研究,开发者可以学习到如何创建...

    Android中获取应用程序(包)的大小-----PackageManager的使用(二)

    总结来说,获取Android应用的大小涉及对`PackageManager`的使用,通过`PackageInfo`对象获取基本信息,并可能需要结合文件系统的API来计算。需要注意的是,应用的大小不仅仅包含APK本身,还包括其数据文件、缓存和...

    使用PackageManager获得应用信息实例方法

    下面我们将深入探讨如何使用`PackageManager`来获取应用信息,并通过实例代码进行说明。 首先,要获取`PackageManager`的实例,我们通常在Activity或Service中使用`getPackageManager()`方法。例如: ```java ...

    android PackageManager 反射调用相关的类

    Android PackageManager 有很多方法是没有暴漏出来的,我们如果想调用的话需要用Java反射。android_dependency.jar 提供了反射调用相关的class定义,直接放到你的工程libs目录下面,然后就可以进行反射调用...

    Android_PackageManager分析

    【Android_PackageManager分析】 Android的PackageManager服务是系统的核心组件之一,它负责管理应用程序的安装、卸载以及应用信息的查询等操作。在Android系统中,PackageManager涉及到的主要知识点包括: 1. **`...

    packageManager得到包名打开应用程序

    可根据包名打开应用程序(不算系统的)MainActivity里面的getLaunchIntentForPackage里面的("com.wandoujia.phoenix2")需要修改,这里我是用的是豌豆荚的包名,如果没装豌豆荚的请安装,或者包名参数改成你自己的...

    PackageManager相关例子

    使用`getPermissionInfo()`方法,可以获取应用所请求的权限详情。这包括权限的名称、描述、危险级别等。同时,`checkPermission()`方法可以检查某个应用是否已经获得了特定的权限。 4. **卸载应用**: 如果你想...

    Android实现整理PackageManager获取所有安装程序信息

    本篇文章将深入探讨如何使用 `PackageManager` 获取并整理Android设备上的所有安装程序信息。 首先,`PackageManager` 提供了一个名为 `getInstalledPackages(int flags)` 的方法,用于获取设备上所有安装的应用...

    android得到最近使用过的应用

    在Android系统中,获取最近...4. 使用`PackageManager`获取应用的其他元数据 理解并掌握这些知识点,对于开发能够监控和分析用户行为的应用非常有帮助。同时,尊重用户隐私,确保合法合规地使用这些信息是至关重要的。

    packagemanager:程序包管理器

    一旦`pip`准备就绪,可以使用以下命令安装`packagemanager`: ```bash pip install packagemanager ``` ### 发展历程 `packagemanager`的发展历程反映了Python生态系统中对更高效包管理工具的需求。随着Python...

Global site tag (gtag.js) - Google Analytics