美文网首页安卓换肤
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