HarmonyOS API:@ohos.bundle (Bundle模块)
版本:v3.1 Beta
@ohos.bundle (Bundle模块)
更新时间: 2023-02-17 09:19
本模块提供应用信息查询能力,支持包信息、应用信息、Ability组件信息等信息的查询,以及应用禁用状态的查询、设置等。
说明
本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
导入模块
import bundle from '@ohos.bundle';
权限列表
权限 | 权限等级 | 描述 |
ohos.permission.GET_BUNDLE_INFO | normal | 查询指定应用信息。 |
ohos.permission.GET_BUNDLE_INFO_PRIVILEGED | system_basic | 可查询所有应用信息。 |
ohos.permission.INSTALL_BUNDLE | system_core | 可安装、卸载应用。 |
ohos.permission.MANAGE_DISPOSED_APP_STATUS | system_core | 可设置和查询应用的处置状态。 |
权限等级参考权限等级说明。
bundle.getApplicationInfodeprecated
从API version 9开始不再维护,建议使用bundleManager.getApplicationInfo替代。
getApplicationInfo(bundleName: string, bundleFlags: number, userId?: number): Promise<ApplicationInfo>
以异步方法根据给定的包名获取ApplicationInfo。使用Promise异步回调。
获取调用方自己的信息时不需要权限。
需要权限:
ohos.permission.GET_BUNDLE_INFO_PRIVILEGED 或 ohos.permission.GET_BUNDLE_INFO
系统能力:
SystemCapability.BundleManager.BundleFramework
参数:
参数名 | 类型 | 必填 | 说明 |
bundleName | string | 是 | 要查询的应用程序包名称。 |
bundleFlags | number | 是 | 用于指定返回的应用信息对象中包含信息的标记。取值范围请参考BundleFlag说明中应用信息相关flag。 |
userId | number | 否 | 用户ID。默认值:调用方所在用户,取值范围:大于等于0。 |
返回值:
类型 | 说明 |
Promise<ApplicationInfo> | Promise形式返回应用程序信息。 |
示例:
let bundleName = "com.example.myapplication";
let bundleFlags = 0;
let userId = 100;
bundle.getApplicationInfo(bundleName, bundleFlags, userId)
.then((data) => {
console.info('Operation successful. Data: ' + JSON.stringify(data));
}).catch((error) => {
console.error('Operation failed. Cause: ' + JSON.stringify(error));
})
bundle.getApplicationInfodeprecated
从API version 9开始不再维护,建议使用bundleManager.getApplicationInfo替代。
getApplicationInfo(bundleName: string, bundleFlags: number, userId: number, callback: AsyncCallback<ApplicationInfo>): void
以异步方法根据给定的包名获取指定用户下的ApplicationInfo,使用callback形式返回结果。
获取调用方自己的信息时不需要权限。
需要权限:
ohos.permission.GET_BUNDLE_INFO_PRIVILEGED 或 ohos.permission.GET_BUNDLE_INFO
系统能力:
SystemCapability.BundleManager.BundleFramework
参数:
参数名 | 类型 | 必填 | 说明 |
bundleName | string | 是 | 要查询的应用程序包名称。 |
bundleFlags | number | 是 | 用于指定返回的应用信息对象中包含信息的标记。取值范围:参考BundleFlag说明中应用信息相关flag。 |
userId | number | 是 | 用户ID。取值范围:大于等于0。 |
callback | AsyncCallback<ApplicationInfo> | 是 | 程序启动作为入参的回调函数,返回应用程序信息。 |
示例:
let bundleName = "com.example.myapplication";
let bundleFlags = 0;
let userId = 100;
bundle.getApplicationInfo(bundleName, bundleFlags, userId, (err, data) => {
if (err) {
console.error('Operation failed. Cause: ' + JSON.stringify(err));
return;
}
console.info('Operation successful. Data:' + JSON.stringify(data));
})
bundle.getApplicationInfodeprecated
从API version 9开始不再维护,建议使用bundleManager.getApplicationInfo替代。
getApplicationInfo(bundleName: string, bundleFlags: number, callback: AsyncCallback<ApplicationInfo>): void
以异步方法根据给定的包名获取ApplicationInfo,使用callback形式返回结果。
获取调用方自己的信息时不需要权限。
需要权限:
ohos.permission.GET_BUNDLE_INFO_PRIVILEGED 或 ohos.permission.GET_BUNDLE_INFO
系统能力:
SystemCapability.BundleManager.BundleFramework
参数:
参数名 | 类型 | 必填 | 说明 |
bundleName | string | 是 | 要查询的应用程序包名称。 |
bundleFlags | number | 是 | 用于指定返回的应用信息对象中包含信息的标记。取值范围:参考BundleFlag说明中应用信息相关flag。 |
callback | AsyncCallback<ApplicationInfo> | 是 | 程序启动作为入参的回调函数,返回应用程序信息。 |
示例:
let bundleName = "com.example.myapplication";
let bundleFlags = 0;
bundle.getApplicationInfo(bundleName, bundleFlags, (err, data) => {
if (err) {
console.error('Operation failed. Cause: ' + JSON.stringify(err));
return;
}
console.info('Operation successful. Data:' + JSON.stringify(data));
})
bundle.getAllBundleInfodeprecated
从API version 9开始不再维护,建议使用bundleManager.getAllBundleInfo替代。
getAllBundleInfo(bundleFlag: BundleFlag, userId?: number): Promise<Array<BundleInfo>>
以异步方法获取指定用户所有的BundleInfo,使用Promise形式异步回调,
需要权限:
ohos.permission.GET_BUNDLE_INFO_PRIVILEGED
系统能力:
SystemCapability.BundleManager.BundleFramework
参数:
参数名 | 类型 | 必填 | 说明 |
bundleFlag | BundleFlag | 是 | 用于指定返回的包信息对象中包含信息的标记。取值范围:参考BundleFlag说明中包信息相关flag。 |
userId | number | 否 | 用户ID。默认值:调用方所在用户,取值范围:大于等于0。 |
返回值:
类型 | 说明 |
Promise<Array<BundleInfo>> | Promise形式返回所有可用的BundleInfo |
示例:
let bundleFlag = 0;
let userId = 100;
bundle.getAllBundleInfo(bundleFlag, userId)
.then((data) => {
console.info('Operation successful. Data: ' + JSON.stringify(data));
}).catch((error) => {
console.error('Operation failed. Cause: ' + JSON.stringify(error));
})
bundle.getAllBundleInfodeprecated
从API version 9开始不再维护,建议使用bundleManager.getAllBundleInfo替代。
getAllBundleInfo(bundleFlag: BundleFlag, callback: AsyncCallback<Array<BundleInfo>>): void
以异步方法获取当前用户所有的BundleInfo,使用callback形式返回结果。
需要权限:
ohos.permission.GET_BUNDLE_INFO_PRIVILEGED
系统能力:
SystemCapability.BundleManager.BundleFramework
参数:
参数名 | 类型 | 必填 | 说明 |
bundleFlag | BundleFlag | 是 | 用于指定返回的应用信息对象中包含信息的标记。取值范围:参考BundleFlag说明中包信息相关flag。 |
callback | AsyncCallback<Array<BundleInfo>> | 是 | 程序启动作为入参的回调函数,返回所有可用的BundleInfo。 |
示例:
let bundleFlag = 0;
bundle.getAllBundleInfo(bundleFlag, (err, data) => {
if (err) {
console.error('Operation failed. Cause: ' + JSON.stringify(err));
return;
}
console.info('Operation successful. Data:' + JSON.stringify(data));
})
bundle.getAllBundleInfodeprecated
从API version 9开始不再维护,建议使用bundleManager.getAllBundleInfo替代。
getAllBundleInfo(bundleFlag: BundleFlag, userId: number, callback: AsyncCallback<Array<BundleInfo>>): void
以异步方法获取系统中指定用户下所有的BundleInfo,使用callback形式返回结果。
需要权限:
ohos.permission.GET_BUNDLE_INFO_PRIVILEGED
系统能力:
SystemCapability.BundleManager.BundleFramework
参数:
参数名 | 类型 | 必填 | 说明 |
bundleFlag | BundleFlag | 是 | 用于指定返回的应用信息对象中包含信息的标记。取值范围:参考BundleFlag说明中包信息相关flag。 |
userId | number | 是 | 用户ID。默认值:调用方所在用户,取值范围:大于等于0。 |
callback | AsyncCallback<Array<BundleInfo>> | 是 | 程序启动作为入参的回调函数,返回指定用户下所有包的BundleInfo。 |
|
|
|
|
示例:
let bundleFlag = 0;
let userId = 100;
bundle.getAllBundleInfo(bundleFlag, userId, (err, data) => {
if (err) {
console.error('Operation failed. Cause: ' + JSON.stringify(err));
return;
}
console.info('Operation successful. Data:' + JSON.stringify(data));
})
bundle.getBundleInfodeprecated
从API version 9开始不再维护,建议使用bundleManager.getBundleInfo替代。
getBundleInfo(bundleName: string, bundleFlags: number, options?: BundleOptions): Promise<BundleInfo>
以异步方法根据给定的包名获取BundleInfo,使用Promise异步回调。
获取调用方自己的信息时不需要权限。
需要权限:
ohos.permission.GET_BUNDLE_INFO_PRIVILEGED 或 ohos.permission.GET_BUNDLE_INFO
系统能力:
SystemCapability.BundleManager.BundleFramework
参数:
参数名 | 类型 | 必填 | 说明 |
bundleName | string | 是 | 要查询的应用程序包名称。 |
bundleFlags | number | 是 | 用于指定返回的应用信息对象中包含信息的标记。取值范围:参考BundleFlag说明中包信息相关flag。 |
options | 否 | 包含userid的查询选项。 |
返回值:
类型 | 说明 |
Promise<BundleInfo> | Promise对象,获取成功时返回包信息。 |
示例:
let bundleName = "com.example.myapplication";
let bundleFlags = 1;
let options = {
"userId" : 100
};
bundle.getBundleInfo(bundleName, bundleFlags, options)
.then((data) => {
console.info('Operation successful. Data: ' + JSON.stringify(data));
}).catch((error) => {
console.error('Operation failed. Cause: ' + JSON.stringify(error));
})
bundle.getBundleInfodeprecated
从API version 9开始不再维护,建议使用bundleManager.getBundleInfo替代。
getBundleInfo(bundleName: string, bundleFlags: number, callback: AsyncCallback<BundleInfo>): void
以异步方法根据给定的包名获取BundleInfo,使用callback异步回调。
获取调用方自己的信息时不需要权限。
需要权限:
ohos.permission.GET_BUNDLE_INFO_PRIVILEGED 或 ohos.permission.GET_BUNDLE_INFO
系统能力:
SystemCapability.BundleManager.BundleFramework
参数:
参数名 | 类型 | 必填 | 说明 |
bundleName | string | 是 | 需要查询的应用程序包名称。 |
bundleFlags | number | 是 | 用于指定返回的应用信息对象中包含信息的标记。取值范围:参考BundleFlag说明中包信息相关flag。 |
callback | AsyncCallback<BundleInfo> | 是 | 程序启动作为入参的回调函数,返回包信息。 |
示例:
let bundleName = "com.example.myapplication";
let bundleFlags = 1;
bundle.getBundleInfo(bundleName, bundleFlags, (err, data) => {
if (err) {
console.error('Operation failed. Cause: ' + JSON.stringify(err));
return;
}
console.info('Operation successful. Data:' + JSON.stringify(data));
})
bundle.getBundleInfodeprecated
从API version 9开始不再维护,建议使用bundleManager.getBundleInfo替代。
getBundleInfo(bundleName: string, bundleFlags: number, options: BundleOptions, callback: AsyncCallback<BundleInfo>): void
以异步方法根据给定的包名获取BundleInfo,使用callback异步回调。
获取调用方自己的信息时不需要权限。
需要权限:
ohos.permission.GET_BUNDLE_INFO_PRIVILEGED 或 ohos.permission.GET_BUNDLE_INFO
系统能力:
SystemCapability.BundleManager.BundleFramework
参数:
参数名 | 类型 | 必填 | 说明 |
bundleName | string | 是 | 要查询的应用包名。 |
bundleFlags | number | 是 | 用于指定返回的应用信息对象中包含信息的标记。取值范围:参考BundleFlag说明中包信息相关flag。 |
options | 是 | 包含userid。 | |
callback | AsyncCallback<BundleInfo> | 是 | 程序启动作为入参的回调函数,返回包信息。 |
示例:
let bundleName = "com.example.myapplication";
let bundleFlags = 1;
let options = {
"userId" : 100
};
bundle.getBundleInfo(bundleName, bundleFlags, options, (err, data) => {
if (err) {
console.error('Operation failed. Cause: ' + JSON.stringify(err));
return;
}
console.info('Operation successful. Data:' + JSON.stringify(data));
})
bundle.getAllApplicationInfodeprecated
从API version 9开始不再维护,建议使用bundleManager.getAllApplicationInfo替代。
getAllApplicationInfo(bundleFlags: number, userId?: number): Promise<Array<ApplicationInfo>>
获取指定用户下所有已安装的应用信息,使用promise异步回调。
需要权限:
ohos.permission.GET_BUNDLE_INFO_PRIVILEGED
系统能力:
SystemCapability.BundleManager.BundleFramework
参数:
参数名 | 类型 | 必填 | 说明 |
bundleFlags | number | 是 | 用于指定返回的应用信息对象中包含信息的标记。取值范围:参考BundleFlag说明中应用信息相关flag。 |
userId | number | 否 | 用户ID。默认值:调用方所在用户,取值范围:大于等于0。 |
返回值:
类型 | 说明 |
Promise<Array<ApplicationInfo>> | Promise对象,获取成功时返回应用信息列表。 |
示例:
let bundleFlags = 8;
let userId = 100;
bundle.getAllApplicationInfo(bundleFlags, userId)
.then((data) => {
console.info('Operation successful. Data: ' + JSON.stringify(data));
}).catch((error) => {
console.error('Operation failed. Cause: ' + JSON.stringify(error));
})
bundle.getAllApplicationInfodeprecated
从API version 9开始不再维护,建议使用bundleManager.getAllApplicationInfo替代。
getAllApplicationInfo(bundleFlags: number, userId: number, callback: AsyncCallback<Array<ApplicationInfo>>): void
获取指定用户下所有已安装的应用信息,使用callback异步回调。
需要权限:
ohos.permission.GET_BUNDLE_INFO_PRIVILEGED
系统能力:
SystemCapability.BundleManager.BundleFramework
参数:
参数名 | 类型 | 必填 | 说明 |
bundleFlags | number | 是 | 用于指定返回的应用信息对象中包含信息的标记。取值范围:参考BundleFlag说明中应用信息相关flag。 |
userId | number | 是 | 用户ID。默认值:调用方所在用户,取值范围:大于等于0。 |
callback | AsyncCallback<Array<ApplicationInfo>> | 是 | 程序启动作为入参的回调函数,返回应用信息列表。 |
示例:
let bundleFlags = bundle.BundleFlag.GET_APPLICATION_INFO_WITH_PERMISSION;
let userId = 100;
bundle.getAllApplicationInfo(bundleFlags, userId, (err, data) => {
if (err) {
console.error('Operation failed. Cause: ' + JSON.stringify(err));
return;
}
console.info('Operation successful. Data:' + JSON.stringify(data));
})
bundle.getAllApplicationInfodeprecated
从API version 9开始不再维护,建议使用bundleManager.getAllApplicationInfo替代。
getAllApplicationInfo(bundleFlags: number, callback: AsyncCallback<Array<ApplicationInfo>>) : void;
获取调用方所在用户下已安装的应用信息,使用callback异步回调。
需要权限:
ohos.permission.GET_BUNDLE_INFO_PRIVILEGED
系统能力:
SystemCapability.BundleManager.BundleFramework
参数:
参数名 | 类型 | 必填 | 说明 |
bundleFlags | number | 是 | 用于指定返回的应用信息对象中包含信息的标记。取值范围:参考BundleFlag说明中应用信息相关flag。 |
callback | AsyncCallback<Array<ApplicationInfo>> | 是 | 程序启动作为入参的回调函数,返回应用信息列表。 |
示例:
let bundleFlags = bundle.BundleFlag.GET_APPLICATION_INFO_WITH_PERMISSION;
bundle.getAllApplicationInfo(bundleFlags, (err, data) => {
if (err) {
console.error('Operation failed. Cause: ' + JSON.stringify(err));
return;
}
console.info('Operation successful. Data:' + JSON.stringify(data));
})
bundle.getBundleArchiveInfodeprecated
从API version 9开始不再维护,建议使用bundleManager.getBundleArchiveInfo替代。
getBundleArchiveInfo(hapFilePath: string, bundleFlags: number) : Promise<BundleInfo>
获取有关HAP包中包含的应用程序包的信息,使用Promise形式返回结果。
系统能力:
SystemCapability.BundleManager.BundleFramework
参数:
参数名 | 类型 | 必填 | 说明 |
hapFilePath | string | 是 | HAP存放路径。支持当前应用程序的绝对路径和数据目录沙箱路径。 |
bundleFlags | number | 是 | 用于指定要返回的BundleInfo对象中包含信息的标记。取值范围:参考BundleFlag说明中包信息相关flag。 |
返回值:
类型 | 说明 |
Promise<BundleInfo> | 返回值为Promise对象,Promise中包含有关hap包中包含的应用程序的信息。 |
示例:
let hapFilePath = "/data/storage/el2/base/test.hap";
let bundleFlags = 0;
bundle.getBundleArchiveInfo(hapFilePath, bundleFlags)
.then((data) => {
console.info('Operation successful. Data: ' + JSON.stringify(data));
}).catch((error) => {
console.error('Operation failed. Cause: ' + JSON.stringify(error));
})
bundle.getBundleArchiveInfodeprecated
从API version 9开始不再维护,建议使用bundleManager.getBundleArchiveInfo替代。
getBundleArchiveInfo(hapFilePath: string, bundleFlags: number, callback: AsyncCallback<BundleInfo>) : void
以异步方法获取有关HAP包中包含的应用程序包的信息,使用callback形式返回结果。
系统能力:
SystemCapability.BundleManager.BundleFramework
参数:
参数名 | 类型 | 必填 | 说明 |
hapFilePath | string | 是 | HAP存放路径,支持当前应用程序的绝对路径和数据目录沙箱路径。 |
bundleFlags | number | 是 | 用于指定要返回的BundleInfo对象中包含信息的标记。取值范围:参考BundleFlag说明中包信息相关flag。 |
callback | AsyncCallback<BundleInfo> | 是 | 程序启动作为入参的回调函数,返回HAP包中包含的应用程序包的信息。 |
示例:
let hapFilePath = "/data/storage/el2/base/test.hap";
let bundleFlags = 0;
bundle.getBundleArchiveInfo(hapFilePath, bundleFlags, (err, data) => {
if (err) {
console.error('Operation failed. Cause: ' + JSON.stringify(err));
return;
}
console.info('Operation successful. Data:' + JSON.stringify(data));
})
bundle.getAbilityInfodeprecated
从API version 9开始不再维护,建议使用bundleManager.queryAbilityInfo替代。
getAbilityInfo(bundleName: string, abilityName: string): Promise<AbilityInfo>
通过包名称和组件名获取Ability组件信息,使用Promise形式异步回调。
获取调用方自己的信息时不需要权限。
需要权限:
ohos.permission.GET_BUNDLE_INFO_PRIVILEGED 或 ohos.permission.GET_BUNDLE_INFO
系统能力:
SystemCapability.BundleManager.BundleFramework
参数:
参数名 | 类型 | 必填 | 说明 |
bundleName | string | 是 | 应用程序包名称。 |
abilityName | string | 是 | Ability组件名称。 |
返回值:
类型 | 说明 |
Promise<AbilityInfo> | Promise形式返回Ability信息。 |
示例:
let bundleName = "com.example.myapplication";
let abilityName = "com.example.myapplication.MainAbility";
bundle.getAbilityInfo(bundleName, abilityName)
.then((data) => {
console.info('Operation successful. Data: ' + JSON.stringify(data));
}).catch((error) => {
console.error('Operation failed. Cause: ' + JSON.stringify(error));
})
bundle.getAbilityInfodeprecated
从API version 9开始不再维护,建议使用bundleManager.queryAbilityInfo替代。
getAbilityInfo(bundleName: string, abilityName: string, callback: AsyncCallback<AbilityInfo>): void;
通过包名称和组件名获取Ability组件信息,使用callback形式返回结果。
获取调用方自己的信息时不需要权限。
需要权限:
ohos.permission.GET_BUNDLE_INFO_PRIVILEGED 或 ohos.permission.GET_BUNDLE_INFO
系统能力:
SystemCapability.BundleManager.BundleFramework
参数:
参数名 | 类型 | 必填 | 说明 |
bundleName | string | 是 | 应用程序包名称。 |
abilityName | string | 是 | Ability名称。 |
callback | AsyncCallback<AbilityInfo> | 是 | 程序启动作为入参的回调函数,返回Ability信息。 |
示例:
let bundleName = "com.example.myapplication";
let abilityName = "com.example.myapplication.MainAbility";
bundle.getAbilityInfo(bundleName, abilityName, (err, data) => {
if (err) {
console.error('Operation failed. Cause: ' + JSON.stringify(err));
return;
}
console.info('Operation successful. Data:' + JSON.stringify(data));
})
bundle.getAbilityLabel8+ deprecated
从API version 9开始不再维护,建议使用bundleManager.getAbilityLabel替代。
getAbilityLabel(bundleName: string, abilityName: string): Promise<string>
通过包名称和ability名称获取应用名称,使用Promise形式返回结果。
获取调用方自己的信息时不需要权限。
需要权限:
ohos.permission.GET_BUNDLE_INFO_PRIVILEGED 或 ohos.permission.GET_BUNDLE_INFO
系统能力:
SystemCapability.BundleManager.BundleFramework
参数:
参数名 | 类型 | 必填 | 说明 |
bundleName | string | 是 | 应用程序包名称。 |
abilityName | string | 是 | Ability名称。 |
返回值:
类型 | 说明 |
Promise<string> | Promise形式返回应用名称信息。 |
示例:
let bundleName = "com.example.myapplication";
let abilityName = "com.example.myapplication.MainAbility";
bundle.getAbilityLabel(bundleName, abilityName)
.then((data) => {
console.info('Operation successful. Data: ' + JSON.stringify(data));
}).catch((error) => {
console.error('Operation failed. Cause: ' + JSON.stringify(error));
})