美文网首页安卓换肤
Android 获取本地APK包信息

Android 获取本地APK包信息

作者: sssssss_ | 来源:发表于2020-05-27 14:56 被阅读0次

    需求

    当在异常网络下进行 APK 包下载时,会导致下载几 KB 的 APK 包,随机进入安装会显示“解析错误”的提示。为此,特意增加验证判断:

    通过PackageManager获取本地 APK 安装包的PackageInfo, 跟客户端下载的信息进行对比,就可以解决这次的包异常的问题。

    PackageManager

    PackageManager:用于管理安装的apk和未安装的apk的类。

    getPackageArchiveInfo

    getPackageArchiveInfo :用于获取 APK 安装包文件信息

    PackageInfo

    PackageInfo:对应AndroidManifest.xml中包的所有信息。

    常见字段:

    • public String packageName;包名
    • public String[] splitNames;
    • public int versionCode;版本号
    • public String versionName;版本名称
    • public ApplicationInfo applicationInfo;
    • public long firstInstallTime;第一次安装时间
    • public long lastUpdateTime;上次更新时间
    • public ActivityInfo[] activities;所有的Activity信息
    • public ActivityInfo[] receivers; 所有的广播接收者
    • public ServiceInfo[] services;所有的服务信息
    • public ProviderInfo[] providers;获取ContentProvide
    • public PermissionInfo[] permissions;所有的权限信息

    代码

    public boolean getAPKPackageInfo(String path) {
        // 获取PackageManagerAPK的信息
        try {
            PackageManager packageManager = mActivity.getPackageManager();
            PackageInfo packageInfo = packageManager
                    .getPackageArchiveInfo(path, PackageManager.GET_ACTIVITIES);
            if (U.notNull(packageInfo) && packageInfo.versionName
                    .equals(getUpdateInfo().newVersionName)) {
                return true;
            }
        } catch (Throwable ignore) {
        }
        return false;
    }
    

    相关文章

      网友评论

        本文标题:Android 获取本地APK包信息

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