我是靠谱客的博主 自然鼠标,最近开发中收集的这篇文章主要介绍几种获取应用程序/apk安装包版本信息的方法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在做项目时,用到获取sd卡目录apk的版本,用到了 http://flycatdeng.iteye.com/blog/2265183 ,这里就记录了一下

一、应用程序得到自己的版本信息

      获取到PackageInfo之后,那么包名,版本号什么的都可以得到

         /**
     * 得到当前应用版本名称的方法
     *
     * @param context
     *            :上下文
     * @throws Exception
     */
    public static String getVersionName(Context context) throws Exception {
        // 获取packagemanager的实例
        PackageManager packageManager = context.getPackageManager();
        // getPackageName()是你当前类的包名
        PackageInfo packInfo = packageManager.getPackageInfo(context.getPackageName(), 0);
        String version = packInfo.versionName;
        return version;
    }


二、应用程序获得其他应用程序的版本信息(根据包名)

那从代码来看,其实一方法也可以直接只用二方法得到

     /**
     * 获取指定包名的版本号
     *
     * @param context
     *            本应用程序上下文
     * @param packageName
     *            你想知道版本信息的应用程序的包名
     * @return
     * @throws Exception
     */
    public static String getVersionName(Context context, String packageName) throws Exception {
        // 获取packagemanager的实例
        PackageManager packageManager = context.getPackageManager();
        PackageInfo packInfo = packageManager.getPackageInfo(packageName, 0);
        String version = packInfo.versionName;
        return version;
    }

三、从SD卡等路劲获取某安装包(apk文件)的版本信息

       /**
     * 从一个apk文件去获取该文件的版本信息
     *
     * @param context
     *            本应用程序上下文
     * @param archiveFilePath
     *            APK文件的路径。如:/sdcard/download/XX.apk
     * @return
     */
    public static String getVersionNameFromApk(Context context, String archiveFilePath) {
        PackageManager pm = context.getPackageManager();
        PackageInfo packInfo = pm.getPackageArchiveInfo(archiveFilePath, PackageManager.GET_ACTIVITIES);
        String version = packInfo.versionName;
        return version;
    }


 追踪源码可以看到,系统其实是对该apk文件的AndroidManifest.xml文件进行解析

  assets.setConfiguration(0, 0, null, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,Build.VERSION.RESOURCES_SDK_INT);
  parser = assets.openXmlResourceParser(cookie, ANDROID_MANIFEST_FILENAME);



最后

以上就是自然鼠标为你收集整理的几种获取应用程序/apk安装包版本信息的方法的全部内容,希望文章能够帮你解决几种获取应用程序/apk安装包版本信息的方法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部