HarmonyOS 创建 createAudioCapturer 时候报错误码 6800301

一、错误码6800301的信息

错误码6800301,表示包含参数校验异常、权限校验异常、系统处理异常(具体错误查看系统日志)。

本人遇到的问题是,申请了麦克风权限,但是未弹出提示用户授权,所以权限校验失败了。

二、配置权限

src/main/module.json5文件中配置如下内容

"requestPermissions": [
  {
    "name" :  "ohos.permission.MICROPHONE",
    "reason": "$string:app_name",
    "usedScene": {
      "abilities": [
        "EntryAbility"
      ],
      "when": "always"
    }
  },
]

三、createAudioCapturer前弹窗提示用户授权

import { abilityAccessCtrl } from '@kit.AbilityKit';
let atManager = abilityAccessCtrl.createAtManager();
atManager.requestPermissionsFromUser(getContext(), ['ohos.permission.MICROPHONE']).then((data) => {
  // 权限授权信息,
  console.info('data:' + JSON.stringify(data));
  // 用户同意授权,已弹窗
  // data:{"permissions":["ohos.permission.MICROPHONE"],"authResults":[0],"dialogShownResults":[true]}
  // data:{"permissions":["ohos.permission.MICROPHONE"],"authResults":[0],"dialogShownResults":[false]}
  // 用户拒绝授权,未弹窗
  // data:{"permissions":["ohos.permission.MICROPHONE"],"authResults":[-1],"dialogShownResults":[false]}
}).catch((err: BusinessError) => {
  console.info('data:' + JSON.stringify(err));
});

当应用通过requestPermissionsFromUser()拉起弹框请求用户授权时,用户拒绝授权。应用将无法再次通过requestPermissionsFromUser拉起弹框,需要用户在系统应用“设置”的界面中,手动授予权限。

应用也可以通过调用requestPermissionOnSetting(),直接拉起权限设置弹框,引导用户授予权限。

以下示例代码以再次拉起弹窗申请ohos.permission.MICROPHONE权限为例。

import { abilityAccessCtrl, Context, common } from '@kit.AbilityKit';

import { BusinessError } from '@kit.BasicServicesKit';

let atManager: abilityAccessCtrl.AtManager = abilityAccessCtrl.createAtManager();

let context: Context = getContext(this) as common.UIAbilityContext;

atManager.requestPermissionOnSetting(context, ['ohos.permission.MICROPHONE']).then((data: Array) => {

        console.info('data:' + JSON.stringify(data));

}).catch((err: BusinessError) => {

        console.error('data:' + JSON.stringify(err));

});

你可能感兴趣的:(harmonyos)