android 获取本地短信,Android 获取本地APK包信息
需求当在异常网络下进行 APK 包下载时,会导致下载几 KB 的 APK 包,随机进入安装会显示“解析错误”的提示。为此,特意增加验证判断:通过PackageManager获取本地 APK 安装包的PackageInfo, 跟客户端下载的信息进行对比,就可以解决这次的包异常的问题。PackageManagerPackageManager:用于管理安装的apk和未安装的apk的类。getPackag
需求
当在异常网络下进行 APK 包下载时,会导致下载几 KB 的 APK 包,随机进入安装会显示“解析错误”的提示。为此,特意增加验证判断:
通过PackageManager获取本地 APK 安装包的PackageInfo, 跟客户端下载的信息进行对比,就可以解决这次的包异常的问题。
PackageManager
PackageManager:用于管理安装的apk和未安装的apk的类。
getPackageArchiveInfo
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;
}
更多推荐
所有评论(0)