# 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)); }); ``` ## PermissionOptions | 名称 | 读写属性 | 类型 | 必填 | 描述 | | ---- | -------- | ------ | ---- | ------ | | pid | 只读 | number | 否 | 进程id。
**系统能力**:SystemCapability.Ability.AbilityRuntime.Core | | uid | 只读 | number | 否 | 用户id。
**系统能力**:SystemCapability.Ability.AbilityRuntime.Core | ## PermissionRequestResult | 名称 | 读写属性 | 类型 | 必填 | 描述 | | ----------- | -------- | -------------- | ---- | ------------------ | | requestCode | 只读 | number | 是 | 用户传入的请求代码。
**系统能力**:SystemCapability.Ability.AbilityRuntime.Core | | permissions | 只读 | Array\ | 是 | 用户传入的权限。
**系统能力**:SystemCapability.Ability.AbilityRuntime.Core | | authResults | 只读 | Array\ | 是 | 求权限的结果。
**系统能力**:SystemCapability.Ability.AbilityRuntime.Core |