# Context模块 ## 导入模块 ```js import featureAbility from '@ohos.ability.featureAbility' import bundle from '@ohos.bundle' ``` Context对象是在featureAbility中创建实例,并通过featureAbility的getContext()接口返回,因此在使用Context时,必须导入@ohos.ability.featureAbility库。示例如下: ```js import featureAbility from '@ohos.ability.featureAbility' var context = featureAbility.getContext(); context.getOrCreateLocalDir() ``` ## Context.getOrCreateLocalDir getOrCreateLocalDir(callback: AsyncCallback\): void 获取应用程序的本地根目录(callback形式)。 如果是第一次调用,将创建目录。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **参数:** | 名称 | 类型 | 必填 | 描述 | | -------- | ---------------------- | ---- | -------------------------- | | callback | AsyncCallback\ | 是 | 返回应用程序的本地根目录。 | **示例:** ```js import featureAbility from '@ohos.ability.featureAbility' var context = featureAbility.getContext(); context.getOrCreateLocalDir((err, data)=>{ console.info("data=" + data); }) ``` ## Context.getOrCreateLocalDir getOrCreateLocalDir(): Promise\ 获取应用程序的本地根目录(Promise形式)。 如果是第一次调用,将创建目录。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **返回值:** | 类型 | 说明 | | ---------------- | ---------------------- | | Promise\ | 应用程序的本地根目录。 | **示例:** ```js import featureAbility from '@ohos.ability.featureAbility' var context = featureAbility.getContext(); context.getOrCreateLocalDir().then((data) => { console.info("data=" + data); }); ``` ## Context.verifyPermission verifyPermission(permission: string, options: PermissionOptions, callback: AsyncCallback\): void 验证系统中运行的特定pid和uid是否允许指定的权限(callback形式)。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **参数:** | 名称 | 类型 | 必填 | 描述 | | ---------- | --------------------------------------- | ---- | ------------------------------------- | | permission | string | 是 | 指定权限的名称。 | | options | [PermissionOptions](#permissionoptions) | 是 | 权限选项。 | | callback | AsyncCallback\ | 是 | 返回权限验证结果,0有权限,-1无权限。 | **示例:** ```js import featureAbility from '@ohos.ability.featureAbility' import bundle from '@ohos.bundle' var context = featureAbility.getContext(); bundle.getBundleInfo('com.context.test', 1, (datainfo) =>{ context.verifyPermission("com.example.permission", datainfo.uid); }); ``` ## Context.verifyPermission verifyPermission(permission: string, callback: AsyncCallback\): void 验证系统中运行的当前pid和uid是否具有指定的权限(callback形式)。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **参数:** | 名称 | 类型 | 必填 | 描述 | | ---------- | ---------------------- | ---- | ------------------------------------- | | permission | string | 是 | 指定权限的名称。 | | callback | AsyncCallback\ | 是 | 返回权限验证结果,0有权限,-1无权限。 | **示例:** ```js import featureAbility from '@ohos.ability.featureAbility' var context = featureAbility.getContext(); context.verifyPermission("com.example.permission") ``` ## Context.verifyPermission verifyPermission(permission: string, options?: PermissionOptions): Promise\ 验证系统中运行的特定pid和uid是否具有指定的权限(Promise形式)。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **参数:** | 名称 | 类型 | 必填 | 描述 | | ---------- | --------------------------------------- | ---- | ---------------- | | permission | string | 是 | 指定权限的名称。 | | options | [PermissionOptions](#permissionoptions) | 否 | 权限选项。 | **返回值:** | 类型 | 说明 | | ---------------- | ----------------------------------------------------------- | | Promise\ | 如果pid和uid具有权限,则使用0进行异步回调;否则使用-1回调。 | **示例:** ```js import featureAbility from '@ohos.ability.featureAbility' var context = featureAbility.getContext(); var Permission = context.PermissionOptions(1,1); context.verifyPermission('com.context.permission',Permission).then((data) => { console.info("======================>verifyPermissionCallback====================>"); console.info("====>data====>" + JSON.stringify(data)); }); ``` ## Context.requestPermissionsFromUser requestPermissionsFromUser(permissions: Array\, requestCode: number, resultCallback: AsyncCallback<[PermissionRequestResult](#permissionrequestresult)>): void 从系统请求某些权限(callback形式)。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **参数:** | 名称 | 类型 | 必填 | 描述 | | -------------- | ------------------------------------------------------------ | ---- | ----------------------------------------------- | | permissions | Array\ | 是 | 指示要请求的权限列表。此参数不能为null。 | | requestCode | number | 是 | 指示要传递给PermissionRequestResult的请求代码。 | | resultCallback | AsyncCallback<[PermissionRequestResult](#permissionrequestresult)> | 是 | 返回授权结果信息。 | **示例:** ```js import featureAbility from '@ohos.ability.featureAbility' var context = featureAbility.getContext(); context.requestPermissionsFromUser( ["com.example.permission1", "com.example.permission2", "com.example.permission3", "com.example.permission4", "com.example.permission5"], 1,(err, data)=>{ console.info("====>requestdata====>" + JSON.stringify(data)); console.info("====>requesterrcode====>" + JSON.stringify(err.code)); } ) ``` ## Context.getApplicationInfo getApplicationInfo(callback: AsyncCallback\): void 获取有关当前应用程序的信息(callback形式)。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **参数:** | 名称 | 类型 | 必填 | 描述 | | -------- | ------------------------------- | ---- | ------------------------ | | callback | AsyncCallback\ | 是 | 返回当前应用程序的信息。 | **示例:** ```js import featureAbility from '@ohos.ability.featureAbility' var context = featureAbility.getContext(); context.getApplicationInfo() ``` ## Context.getApplicationInfo getApplicationInfo(): Promise\ 获取有关当前应用程序的信息(Promise形式)。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **返回值:** | 类型 | 说明 | | ------------------------- | ------------------ | | Promise\ | 当前应用程序的信息 | **示例:** ```js import featureAbility from '@ohos.ability.featureAbility' var context = featureAbility.getContext(); context.getApplicationInfo().then((data) => { console.info("=====================>getApplicationInfoCallback===================>"); console.info("====>data====>" + JSON.stringify(data)); }); ``` ## Context.getBundleName getBundleName(callback: AsyncCallback\): void 获取当前ability的捆绑包名称(callback形式)。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **参数:** | 名称 | 类型 | 必填 | 描述 | | -------- | ---------------------- | ---- | ----------------------------- | | callback | AsyncCallback\ | 是 | 返回当前ability的捆绑包名称。 | **示例:** ```js import featureAbility from '@ohos.ability.featureAbility' var context = featureAbility.getContext(); context.getBundleName() ``` ## Context.getBundleName getBundleName(): Promise\ 获取当前ability的捆绑包名称(Promise形式)。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **返回值:** | 类型 | 说明 | | ---------------- | ------------------------- | | Promise\ | 当前ability的捆绑包名称。 | **示例:** ```js import featureAbility from '@ohos.ability.featureAbility' var context = featureAbility.getContext(); context.getBundleName().then((data) => { console.info("=======================>getBundleNameCallback====================>"); console.info("====>data====>" + JSON.stringify(data)); }); ``` ## Context.getProcessInfo getProcessInfo(callback: AsyncCallback\): void 获取有关当前进程的信息,包括进程ID和名称(callback形式)。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **参数:** | 名称 | 类型 | 必填 | 描述 | | -------- | --------------------------- | ---- | -------------------- | | callback | AsyncCallback\ | 是 | 返回当前进程的信息。 | **示例:** ```js import featureAbility from '@ohos.ability.featureAbility' var context = featureAbility.getContext(); context.getProcessInfo() ``` ## Context.getProcessInfo getProcessInfo(): Promise\ 获取有关当前进程的信息,包括进程id和名称(Promise形式)。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **返回值:** | 类型 | 说明 | | --------------------- | -------------- | | Promise\ | 当前进程的信息 | **示例:** ```js import featureAbility from '@ohos.ability.featureAbility' var context = featureAbility.getContext(); context.getProcessInfo().then((data) => { console.info("=======================>getProcessInfoCallback====================>"); console.info("====>data====>" + JSON.stringify(data)); }); ``` ## Context.getElementName getElementName(callback: AsyncCallback\): void 获取当前ability的ohos.bundle.ElementName对象(callback形式)。 此方法仅适用于页面功能。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **参数:** | 名称 | 类型 | 必填 | 描述 | | -------- | --------------------------- | ---- | ---------------------------------------------- | | callback | AsyncCallback\ | 是 | 返回当前ability的ohos.bundle.ElementName对象。 | **示例:** ```js import featureAbility from '@ohos.ability.featureAbility' var context = featureAbility.getContext(); context.getElementName() ``` ## Context.getElementName getElementName(): Promise\ 获取当前能力的ohos.bundle.ElementName对象(Promise形式)。 此方法仅适用于页面功能。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **返回值:** | 类型 | 说明 | | --------------------- | ------------------------------------------ | | Promise\ | 当前ability的ohos.bundle.ElementName对象。 | **示例:** ```js import featureAbility from '@ohos.ability.featureAbility' var context = featureAbility.getContext(); context.getElementName().then((data) => { console.info("=======================>getElementNameCallback====================>"); console.info("====>data====>" + JSON.stringify(data)); }); ``` ## Context.getProcessName getProcessName(callback: AsyncCallback\): void 获取当前进程的名称(callback形式)。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **参数:** | 名称 | 类型 | 必填 | 描述 | | -------- | ---------------------- | ---- | -------------------- | | callback | AsyncCallback\ | 是 | 返回当前进程的名称。 | **示例:** ```js import featureAbility from '@ohos.ability.featureAbility' var context = featureAbility.getContext(); context.getProcessName() ``` ## Context.getProcessName getProcessName(): Promise\ 获取当前进程的名称(Promise形式)。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **返回值:** | 类型 | 说明 | | ---------------- | -------------------- | | Promise\ | 返回当前进程的名称。 | **示例:** ```js import featureAbility from '@ohos.ability.featureAbility' var context = featureAbility.getContext(); context.getProcessName().then((data) => { console.info("=======================>getProcessNameCallback====================>"); console.info("====>data====>" + JSON.stringify(data)); }); ``` ## Context.getCallingBundle getCallingBundle(callback: AsyncCallback\): void 获取调用ability的包名称(callback形式)。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **参数:** | 名称 | 类型 | 必填 | 描述 | | -------- | ---------------------- | ---- | ------------------------- | | callback | AsyncCallback\ | 是 | 返回调用ability的包名称。 | **示例:** ```js import featureAbility from '@ohos.ability.featureAbility' var context = featureAbility.getContext(); context.getCallingBundle() ``` ## Context.getCallingBundle getCallingBundle(): Promise\ 获取调用ability的包名称(Promise形式)。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **返回值:** | 类型 | 说明 | | --------------- | ------------------------- | | Promise\ | 调用ability的包名称 | **示例:** ```js import featureAbility from '@ohos.ability.featureAbility' var context = featureAbility.getContext(); context.getCallingBundle().then((data) => { console.info("======================>getCallingBundleCallback====================>"); console.info("====>data====>" + JSON.stringify(data)); }); ``` ## Context.getCacheDir getCacheDir(callback: AsyncCallback\): void 获取该应用程序的内部存储目录(callback形式)。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **参数:** | 名称 | 类型 | 必填 | 描述 | | -------- | ---------------------- | ---- | ------------------------- | | callback | AsyncCallback\ | 是 | 返回该应用程序的内部存储目录。| **示例:** ```js import featureAbility from '@ohos.ability.featureAbility' var context = featureAbility.getCacheDir(); context.getCacheDir((err, data) => { if (err) { console.error('Operation failed. Cause: ' + JSON.stringify(err)); return; } console.info('Operation successful. Data:' + JSON.stringify(data)); }); ``` ## Context.getCacheDir getCacheDir(): Promise\ 获取该应用程序的内部存储目录(Promise形式)。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **返回值:** | 类型 | 说明 | | --------------- | ------------------------- | | Promise\ | 获取该应用程序的内部存储目录 | **示例:** ```js import featureAbility from '@ohos.ability.featureAbility' var context = featureAbility.getContext(); context.getCacheDir().then((data) => { console.info("======================>getCacheDirPromsie====================>"); console.info("====>data====>" + JSON.stringify(data)); }); ``` ## Context.getFilesDir getFilesDir(callback: AsyncCallback\): void 获取内部存储器上此应用程序的文件目录(callback形式)。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **参数:** | 名称 | 类型 | 必填 | 描述 | | -------- | ---------------------- | ---- | ------------------------- | | callback | AsyncCallback\ | 是 | 返回内部存储器上此应用程序的文件目录。| **示例:** ```js import featureAbility from '@ohos.ability.featureAbility' var context = featureAbility.getFilesDir(); context.getFilesDir((err, data) => { if (err) { console.error('Operation failed. Cause: ' + JSON.stringify(err)); return; } console.info('Operation successful. Data:' + JSON.stringify(data)); }); ``` ## Context.getFilesDir getFilesDir(): Promise\ 获取内部存储器上此应用程序的文件目录(Promise形式)。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **返回值:** | 类型 | 说明 | | --------------- | ------------------------- | | Promise\ | 返回内部存储器上此应用程序的文件目录。 | **示例:** ```js import featureAbility from '@ohos.ability.featureAbility' var context = featureAbility.getContext(); context.getFilesDir().then((data) => { console.info("======================>getFilesDirPromsie====================>"); console.info("====>data====>" + JSON.stringify(data)); }); ``` ## Context.getOrCreateDistributedDir getOrCreateDistributedDir(callback: AsyncCallback\): void 获取Ability或应用的分布式文件路径。 如果分布式文件路径不存在,系统将创建一个路径并返回创建的路径(callback形式)。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **参数:** | 名称 | 类型 | 必填 | 描述 | | -------- | ---------------------- | ---- | ------------------------- | | callback | AsyncCallback\ | 是 | 回调函数,可以在回调函数中处理接口返回值,返回Ability或应用的分布式文件路径。如果分布式文件路径不存在,系统将创建一个路径并返回创建的路径。| **示例:** ```js import featureAbility from '@ohos.ability.featureAbility' var context = featureAbility.getContext(); context.getOrCreateDistributedDir((err, data) => { if (err) { console.error('Operation failed. Cause: ' + JSON.stringify(err)); return; } console.info('Operation successful. Data:' + JSON.stringify(data)); }); ``` ## Context.getOrCreateDistributedDir getOrCreateDistributedDir(): Promise\ 获取Ability或应用的分布式文件路径。 如果分布式文件路径不存在,系统将创建一个路径并返回创建的路径(Promise形式)。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **返回值:** | 类型 | 说明 | | --------------- | ------------------------- | | Promise\ | Ability或应用的分布式文件路径。如果是第一次调用,则将创建目录。 | **示例:** ```js import featureAbility from '@ohos.ability.featureAbility' var context = featureAbility.getContext(); context.getOrCreateDistributedDir().then((data) => { console.info("====>data====>" + JSON.stringify(data)); }); ``` ## Context.getAppType getAppType(callback: AsyncCallback\): void 获取此应用的类型(callback形式)。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **参数:** | 名称 | 类型 | 必填 | 描述 | | -------- | ---------------------- | ---- | ------------------------- | | callback | AsyncCallback\ | 是 | 回调函数,可以在回调函数中处理接口返回值,返回此应用程序的类型。| **示例:** ```js import featureAbility from '@ohos.ability.featureAbility' var context = featureAbility.getContext(); context.getAppType((err, data) => { if (err) { console.error('Operation failed. Cause: ' + JSON.stringify(err)); return; } console.info('Operation successful. Data:' + JSON.stringify(data)); }); ``` ## Context.getAppType getAppType(): Promise\ 获取此应用的类型(Promise形式)。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **返回值:** | 类型 | 说明 | | --------------- | ------------------------- | | Promise\ | Promise形式返回此应用的类型。 | **示例:** ```js import featureAbility from '@ohos.ability.featureAbility' var context = featureAbility.getContext(); context.getAppType().then((data) => { console.info("====>data====>" + JSON.stringify(data)); }); ``` ## Context.getHapModuleInfo getHapModuleInfo(callback: AsyncCallback\): void 获取应用的ModuleInfo对象(callback形式)。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **参数:** | 名称 | 类型 | 必填 | 描述 | | -------- | ---------------------- | ---- | ------------------------- | | callback | AsyncCallback\<[HapModuleInfo](#hapmoduleinfo)> | 是 | 回调函数,可以在回调函数中处理接口返回值,返回应用的ModuleInfo对象。| **示例:** ```js import featureAbility from '@ohos.ability.featureAbility' var context = featureAbility.getContext(); context.getHapModuleInfo((err, data) => { if (err) { console.error('Operation failed. Cause: ' + JSON.stringify(err)); return; } console.info('Operation successful. Data:' + JSON.stringify(data)); }); ``` ## Context.getHapModuleInfo getHapModuleInfo(): Promise\ 获取应用的ModuleInfo对象(Promise形式)。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **返回值:** | 类型 | 说明 | | --------------- | ------------------------- | | Promise\<[HapModuleInfo](#hapmoduleinfo)> | Promise形式返回应用的ModuleInfo对象。 | **示例:** ```js import featureAbility from '@ohos.ability.featureAbility' var context = featureAbility.getContext(); context.getHapModuleInfo().then((data) => { console.info("====>data====>" + JSON.stringify(data)); }); ``` ## Context.getAppVersionInfo getAppVersionInfo(callback: AsyncCallback\): void 获取应用的版本信息(callback形式)。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **参数:** | 名称 | 类型 | 必填 | 描述 | | -------- | ---------------------- | ---- | ------------------------- | | callback | AsyncCallback\<[AppVersionInfo](#appversioninfo)> | 是 | 回调函数,可以在回调函数中处理接口返回值,返回应用版本信息。| **示例:** ```js import featureAbility from '@ohos.ability.featureAbility' var context = featureAbility.getContext(); context.getAppVersionInfo((err, data) => { if (err) { console.error('Operation failed. Cause: ' + JSON.stringify(err)); return; } console.info('Operation successful. Data:' + JSON.stringify(data)); }); ``` ## Context.getAppVersionInfo getAppVersionInfo(): Promise\ 获取应用的版本信息(Promise形式)。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **返回值:** | 类型 | 说明 | | --------------- | ------------------------- | | Promise\<[AppVersionInfo](#appversioninfo)> | 返回应用版本信息。 | **示例:** ```js import featureAbility from '@ohos.ability.featureAbility' var context = featureAbility.getContext(); context.getAppVersionInfo().then((data) => { console.info("====>data====>" + JSON.stringify(data)); }); ``` ## Context.getAbilityInfo getAbilityInfo(callback: AsyncCallback\): void 查询当前归属Ability详细信息(callback形式)。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **参数:** | 名称 | 类型 | 必填 | 描述 | | -------- | ---------------------- | ---- | ------------------------- | | callback | AsyncCallback\<[AbilityInfo](#abilityInfo)> | 是 |回调函数,可以在回调函数中处理接口返回值,返回当前归属Ability详细信息。| **示例:** ```js import featureAbility from '@ohos.ability.featureAbility' var context = featureAbility.getContext(); context.getAbilityInfo((err, data) => { if (err) { console.error('Operation failed. Cause: ' + JSON.stringify(err)); return; } console.info('Operation successful. Data:' + JSON.stringify(data)); }); ``` ## Context.getAbilityInfo getAbilityInfo(): Promise\ 查询当前归属Ability详细信息(Promise形式)。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **返回值:** | 类型 | 说明 | | --------------- | ------------------------- | | Promise\<[AbilityInfo](#abilityInfo)> | 返回当前归属Ability详细信息。 | **示例:** ```js import featureAbility from '@ohos.ability.featureAbility' var context = featureAbility.getContext(); context.getAbilityInfo().then((data) => { console.info("====>data====>" + JSON.stringify(data)); }); ``` ## Context.getApplicationContext getApplicationContext(): Context 获取应用上下文信息。 **系统能力**:SystemCapability.Ability.AbilityRuntime.Core **返回值:** | 类型 | 说明 | | --------- |------ | | Context |返回应用上下文信息。 | **示例:** ```js import featureAbility from '@ohos.ability.featureAbility' var context = featureAbility.getContext().getApplicationContext(); ``` ## PermissionOptions **系统能力**:SystemCapability.Ability.AbilityRuntime.Core | 名称 | 读写属性 | 类型 | 必填 | 描述 | | ---- | -------- | ------ | ---- | ------ | | pid | 只读 | number | 否 | 进程id。 | | uid | 只读 | number | 否 | 用户id。 | ## PermissionRequestResult **系统能力**:SystemCapability.Ability.AbilityRuntime.Core | 名称 | 读写属性 | 类型 | 必填 | 描述 | | ----------- | -------- | -------------- | ---- | ------------------ | | requestCode | 只读 | number | 是 | 用户传入的请求代码。 | | permissions | 只读 | Array\ | 是 | 用户传入的权限。 | | authResults | 只读 | Array\ | 是 | 请求权限的结果。 | ## HapModuleInfo Hap模块信息 | 名称 | 类型 | 可读 | 可写 | 说明 | | ------ | ------ | ------ | ------ | ------ | | name | string | 是 | 否 | 模块名称 | | description | string | 是 | 否 | 模块描述信息 | | descriptionId | number | 是 | 否 | 描述信息ID | | icon | string | 是 | 否 | 模块图标 | | label | string | 是 | 否 | 模块标签 | | labelId | number | 是 | 否 | 模块标签ID | | iconId | number | 是 | 否 | 模块图标ID | | backgroundImg | string | 是 | 否 | 模块背景图片 | | supportedModes | number | 是 | 否 | 模块支持的模式 | | reqCapabilities | Array | 是 | 否 | 模块运行需要的能力 | | deviceTypes | Array | 是 | 否 | 支持运行的设备类型 | | abilityInfo | Array | 是 | 否 | Ability信息 | | moduleName | string | 是 | 否 | 模块名 | | mainAbilityName | string | 是 | 否 | 入口Ability名称 | | installationFree | boolean | 是 | 否 | 是否支持免安装 | | mainElementName | string | 是 | 否 | 入口ability信息 | ## AppVersionInfo | 名称 | 类型 | 可读 | 可写 | 说明 | | ------ | ------ | ------| ------ | ------ | | appName | string | 是 | 否 | 模块名称 | | versionCode | number | 是 | 否 | 模块描述信息 | | versionName | string | 是 | 否 | 描述信息ID |