BluetoothManager.startBluetoothDiscovery()报错处理:errCode:-4,errMessage:Inner error,在HarmonyOS 鸿蒙Next蓝牙扫描中的解决方案

发布于 1周前 作者 ionicwang 来自 鸿蒙OS

BluetoothManager.startBluetoothDiscovery()报错处理:errCode:-4,errMessage:Inner error,在HarmonyOS 鸿蒙Next蓝牙扫描中的解决方案

使用bluetoothManager from '@ohos.bluetoothManager';中的bluetoothManager.startBluetoothDiscovery()会报错:errCode:-4,errMessage:Inner error.

我已在配置文件中申请以下权限:

```json
{
  "requestPermissions": [
    {
      "name": "ohos.permission.DISCOVER_BLUETOOTH"
    },
    {
      "name": "ohos.permission.USE_BLUETOOTH"
    },
    {
      "name": "ohos.permission.APPROXIMATELY_LOCATION",   //user_grant类型的权限,需要多填几个属性
      "reason": "$string:approximatelyLocationReason",
      "usedScene": {
        "abilities": [
          "FormAbility"
        ],
        "when": "inuse"
      }
    },
    {
      "name": "ohos.permission.LOCATION",
      "reason": "$string:locationReason",
      "usedScene": {
        "abilities": [
          "FormAbility"
        ],
        "when": "inuse"
      }
    }
  ]
}

同时使用

reqPermissionsFromUser()可以成功调出用户授权窗口,但是授权后就报错

errCode:-4,errMessage:Inner error.


更多关于BluetoothManager.startBluetoothDiscovery()报错处理:errCode:-4,errMessage:Inner error,在HarmonyOS 鸿蒙Next蓝牙扫描中的解决方案的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

8 回复

https://developer.huawei.com/consumer/cn/doc/atomic-guides-V5/atomic-bluetooth-access-V5

这个文档里面,有示例代码,看着你权限申请,是没有申请楼上说的ACCESS_BLUETOOTH权限,可以申请一下尝试下

更多关于BluetoothManager.startBluetoothDiscovery()报错处理:errCode:-4,errMessage:Inner error,在HarmonyOS 鸿蒙Next蓝牙扫描中的解决方案的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


我是api9用的BluetoothManager模块的,导入这个模块会报错的。

import需要的access模块。在module.json5文件中添加需要使用的ACCESS_BLUETOOTH权限

https://developer.huawei.com/consumer/cn/doc/atomic-guides-V5/atomic-bluetooth-access-V5

这个是api9的,没有ACCESS_BLUETOOTH权限,用的是BluetoothManager模块,我现在是可以通过调enable…函数可以正常打开关闭蓝牙,就是扫描出问题。参考的是harmonyOS4.0及以下的文档,

姓名

张三

职位

软件工程师

所在地

北京市

简历

  • 负责公司主要项目的开发与维护
  • 参与需求分析和技术方案设计
  • 撰写技术文档和项目报告

针对HarmonyOS鸿蒙Next系统中BluetoothManager.startBluetoothDiscovery()方法报错,错误码为-4,错误信息为"Inner error"的问题,可以尝试以下解决方案:

  1. 权限检查: 确保应用已正确申请并获得了蓝牙相关的权限。在鸿蒙系统中,蓝牙操作需要特定的权限支持,请检查manifest文件中是否已声明相关权限。

  2. 蓝牙状态: 在调用startBluetoothDiscovery()之前,确认蓝牙已开启并处于可用状态。可以通过BluetoothManager的接口检查蓝牙状态,若未开启,则先调用开启蓝牙的接口。

  3. 设备兼容性: 检查当前设备是否支持蓝牙扫描功能,以及是否存在硬件或系统级别的限制导致无法执行扫描操作。

  4. 错误处理: 增强错误处理逻辑,对于Inner error等异常信息,尝试捕获并做适当处理,如重试机制或向用户展示错误信息。

  5. 系统日志: 查看系统日志,获取更详细的错误信息,有助于定位问题根源。

如果上述方法仍然无法解决问题,可能是系统层面的bug或特定环境下的异常。此时,请联系官网客服获取进一步支持。官网地址是:https://www.itying.com/category-93-b0.html

回到顶部