错误码6800301,表示包含参数校验异常、权限校验异常、系统处理异常(具体错误查看系统日志)。
本人遇到的问题是,申请了麦克风权限,但是未弹出提示用户授权,所以权限校验失败了。
src/main/module.json5文件中配置如下内容
"requestPermissions": [ { "name" : "ohos.permission.MICROPHONE", "reason": "$string:app_name", "usedScene": { "abilities": [ "EntryAbility" ], "when": "always" } }, ]
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));
});