鸿蒙如何查询应用包的名称、供应商、版本号、版本文本、安装时间、更新时间描述信息
在开始之前需要了解
BundleInfo
应用包信息,三方应用可以通过bundleManager.getBundleInfoForSelf获取自身的应用包信息,其中入参bundleFlags指定所返回的BundleInfo中所包含的信息。
称 | 类型 | 只读 | 可选 | 说明 |
---|---|---|---|---|
name | string | 是 | 否 | 应用包的名称。元服务API: 从API version 11开始,该接口支持在元服务中使用。 |
vendor | string | 是 | 否 | 应用包的供应商。元服务API: 从API version 11开始,该接口支持在元服务中使用。 |
versionCode | number | 是 | 否 | 应用包的版本号。元服务API: 从API version 11开始,该接口支持在元服务中使用。 |
versionName | string | 是 | 否 | 应用包的版本文本描述信息。元服务API: 从API version 11开始,该接口支持在元服务中使用。 |
minCompatibleVersionCode | number | 是 | 否 | 分布式场景下的应用包兼容的最低版本。元服务API: 从API version 11开始,该接口支持在元服务中使用。 |
targetVersion | number | 是 | 否 | 该标签标识应用运行目标版本。元服务API: 从API version 11开始,该接口支持在元服务中使用。 |
appInfo | ApplicationInfo | 是 | 否 | 应用程序的配置信息,通过调用getBundleInfoForSelf接口,bundleFlags参数传入GET_BUNDLE_INFO_WITH_APPLICATION获取。元服务API: 从API version 11开始,该接口支持在元服务中使用。 |
hapModulesInfo | Array<HapModuleInfo> | 是 | 否 | 模块的配置信息,通过调用getBundleInfoForSelf接口,bundleFlags参数传入GET_BUNDLE_INFO_WITH_HAP_MODULE获取。元服务API: 从API version 11开始,该接口支持在元服务中使用。 |
reqPermissionDetails | Array<ReqPermissionDetail> | 是 | 否 | 应用运行时需向系统申请的权限集合的详细信息,通过调用getBundleInfoForSelf接口,bundleFlags参数传入GET_BUNDLE_INFO_WITH_REQUESTED_PERMISSION获取。元服务API: 从API version 11开始,该接口支持在元服务中使用。 |
permissionGrantStates | Array<bundleManager.PermissionGrantState> | 是 | 否 | 申请权限的授予状态,通过调用getBundleInfoForSelf接口,bundleFlags参数传入GET_BUNDLE_INFO_WITH_REQUESTED_PERMISSION获取。元服务API: 从API version 11开始,该接口支持在元服务中使用。 |
signatureInfo | SignatureInfo | 是 | 否 | 应用包的签名信息,通过调用getBundleInfoForSelf接口,bundleFlags参数传入GET_BUNDLE_INFO_WITH_SIGNATURE_INFO获取。元服务API: 从API version 11开始,该接口支持在元服务中使用。 |
installTime | number | 是 | 否 | 应用包安装时间。元服务API: 从API version 11开始,该接口支持在元服务中使用。 |
updateTime | number | 是 | 否 | 应用包更新时间。元服务API: 从API version 11开始,该接口支持在元服务中使用。 |
routerMap12+ | Array<RouterItem> | 是 | 否 | 应用的路由表配置,由hapModulesInfo下的routerMap信息,根据RouterItem中的name字段进行去重后合并得到。通过调用getBundleInfoForSelf接口,bundleFlags参数传入GET_BUNDLE_INFO_WITH_HAP_MODULE和GET_BUNDLE_INFO_WITH_ROUTER_MAP获取。元服务API: 从API version 12开始,该接口支持在元服务中使用。 |
appIndex12+ | number | 是 | 否 | 应用包的分身索引标识,仅在分身应用中生效。 |
具体可通过bundleManager.getBundleInfoForSelf()接口获取应用包的名称、供应商、版本号、版本文本、安装时间、更新时间描述信息。具体可参考示例代码
import { bundleManager } from '@kit.AbilityKit';
// 申请获取bundleInfo和applicationInfo
let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION;
try {
bundleManager.getBundleInfoForSelf(bundleFlags, (err, data) => {
// 获取应用自身的bundleName
const bundleName = data.name;
// 获取应用的版本号(versionCode)
const versionCode = data.versionCode;
// 获取应用的版本名(versionName)
const versionName = data.versionName;
if (err) {
console.error(`getBundleInfoForSelf failed: ${err.message}`);
} else {
console.info(`get bundleName successfully: ${bundleName}`);
console.info(`get versionCode successfully: ${versionCode}`);
console.info(`get versionName successfully: ${versionName}`);
console.info(`getBundleInfoForSelf successfully: ${JSON.stringify(data)}`);
}
});
} catch (err) {
console.error(`getBundleInfoForSelf failed: ${JSON.stringify(err)}`);
}
参考链接
备注
作者:夏天
出处:https://www.arkui.club/
著作权归作者所有,禁止任何未经授权的个人或组织以任何形式将本案例集及其附属资料、创新、创意、架构设计、算法、衍生作品等用于任何商业目的、盈利活动、各类竞赛(比赛)、直播教学、录播教学、线下课程、书籍编写、教材编写、会议、培训、公益活动、项目课题、毕业设计、毕业论文、学术论文等。商业转载请联系作者获得授权,非商业转载请注明出处。否则追究相关责任。