美文网首页
PackageManger管理类

PackageManger管理类

作者: dev晴天 | 来源:发表于2018-08-05 11:14 被阅读0次

    它的主要职责是管理应用程序包。 通过PackageManager,我们就可以获取应用程序信息。

    PackageManager获取的信息即来自AndroidManifest.XML文件中

    一、PackageManager的功能:

    1、安装,卸载应用
    2、查询permission相关信息
    3、查询Application相关信息(application,activity,receiver,service,provider及相应属性等)
    4、查询已安装应用
    5、增加,删除permission
    6、清除用户数据、缓存,代码段等

    获得方式:
    public abstract PackageManager getPackageManager()
    功能:获得一个PackageManger对象

    PackageManager的常见方法:

    public abstract Drawable getApplicationIcon(String packageName)
    参数: packageName 包名
    功能:返回给定包名的图标,否则返回null

    public abstract ApplicationInfo getApplicationInfo(String packageName, int flags)
    参数:
      packagename 包名
      flags 该ApplicationInfo是此flags标记,通常可以直接赋予常数0即可
    功能:返回该ApplicationInfo对象

    public abstract List<ApplicationInfo> getInstalledApplications(int flags)
    参数:
      flag为一般为GET_UNINSTALLED_PACKAGES,那么此时会返回所有ApplicationInfo。我们可以对ApplicationInfo
      的flags过滤,得到我们需要的。
    功能:返回给定条件的所有PackageInfo

    public abstract List<PackageInfo> getInstalledPackages(int flags)
    参数如上
    功能:返回给定条件的所有PackageInfo

    image.png
     // 获得 packageManager
            PackageManager pm = getPackageManager();
            try {
                PackageInfo pi = pm.getPackageInfo(getPackageName(),0);
                // packageInfo 里面有applicationinfo  在里面有activityInfo(四大组件信息)
    
                Log.i("1234", "onCreate: ");
                /*packageInfo 提供了包相关的信息封装在build.gradle中
                *
                *packageInfo 封装了api可以获得 applicationInfo   activityInfo
                *
                * packageInfo里面主要封装了 版本名 版本号  签名信息等等
                * */
    
                /*思路: 获得信息时 先看看信息在那个节点下
                 application 节点下的信息通过applicationInfo获得
                 activity节点下的信息 通过activityInfo 获得
                 */ 
                
                //安装的应用的信息通过pm提供的api获得
            } catch (PackageManager.NameNotFoundException e) {
                e.printStackTrace();
            }
    

    参考:https://www.cnblogs.com/travellife/p/3932823.html
    https://blog.csdn.net/working_harder/article/details/52250092

    相关文章

      网友评论

          本文标题:PackageManger管理类

          本文链接:https://www.haomeiwen.com/subject/qjjwvftx.html