BluetoothManager.startBluetoothDiscovery()报错处理:errCode:-4,errMessage:Inner error,在HarmonyOS 鸿蒙Next蓝牙扫描中的解决方案
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
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及以下的文档,
从API version 9开始支持,从API version 10开始废弃。建议使用connection.startBluetoothDiscovery替代。参考链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V13/js-apis-bluetooth-connection-V13#connectionstartbluetoothdiscovery
姓名
张三
职位
软件工程师
所在地
北京市
简历
- 负责公司主要项目的开发与维护
- 参与需求分析和技术方案设计
- 撰写技术文档和项目报告
针对HarmonyOS鸿蒙Next系统中BluetoothManager.startBluetoothDiscovery()方法报错,错误码为-4,错误信息为"Inner error"的问题,可以尝试以下解决方案:
-
权限检查: 确保应用已正确申请并获得了蓝牙相关的权限。在鸿蒙系统中,蓝牙操作需要特定的权限支持,请检查manifest文件中是否已声明相关权限。
-
蓝牙状态: 在调用startBluetoothDiscovery()之前,确认蓝牙已开启并处于可用状态。可以通过BluetoothManager的接口检查蓝牙状态,若未开启,则先调用开启蓝牙的接口。
-
设备兼容性: 检查当前设备是否支持蓝牙扫描功能,以及是否存在硬件或系统级别的限制导致无法执行扫描操作。
-
错误处理: 增强错误处理逻辑,对于Inner error等异常信息,尝试捕获并做适当处理,如重试机制或向用户展示错误信息。
-
系统日志: 查看系统日志,获取更详细的错误信息,有助于定位问题根源。
如果上述方法仍然无法解决问题,可能是系统层面的bug或特定环境下的异常。此时,请联系官网客服获取进一步支持。官网地址是:https://www.itying.com/category-93-b0.html