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<abilityAccessCtrl.GrantStatus>) => {

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

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

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

});

BLE蓝牙调用读写操作错误码Error1 (0x1): Gatt invalid handle是指在进行蓝牙通信过程中,出现了无效的句柄(handle)错误。 首先,蓝牙通信是基于GATT(通用属性规范)协议的,该协议定义了设备之间的通信方式。在进行读写操作时,需要使用正确的句柄,即属性的唯一标识符,来标识要操作的属性。如果句柄无效,就会出现Gatt invalid handle错误。 出现这个错误可能有以下几种原因: 1. 句柄错误:可能是应用程序错误地读取或写入了错误的句柄,需要仔细检查所操作的句柄是否正确。 2. 设备不支持:某些设备可能不支持某些特定的属性,当尝试读取或写入这些属性时,就会出现无效句柄错误。在进行操作之前,需要确保设备支持要操作的属性。 3. 连接问题:蓝牙连接不稳定或连接断开可能导致无效句柄错误。确保设备处于连接状态,并且连接是稳定的。 解决这个问题的方法有以下几点: 1. 仔细检查句柄:确保正确使用了正确的句柄。可以查阅设备的文档或官方指南,了解句柄的正确使用方法。 2. 确认设备支持:检查设备的特性和属性,确保设备支持要操作的属性。可以查阅设备的技术规格或官方文档,了解设备的支持情况。 3. 稳定连接:确保蓝牙连接是稳定的,没有断开或不稳定的情况。如果连接不稳定,可以尝试重新连接设备或重启设备。 总之,当BLE蓝牙调用读写操作出现Error1 (0x1): Gatt invalid handle错误时,需要仔细检查句柄的正确性、确认设备的支持情况,并确保蓝牙连接的稳定性,以解决这个问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值