下载官方app “hello uni-app”
进入到蓝牙板块 ,初始化蓝牙模块=》开始搜索蓝牙设备=》选择设备
modal弹框显示已经发现0台设备(表现为搜索不到任何)
- 发布:2020-06-11 19:25
- 更新:2020-06-12 15:26
- 阅读:2898
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: WIN10专业版
HBuilderX类型: 正式
HBuilderX版本号: 2.6.16
手机系统: Android
手机系统版本号: Android 10
手机厂商: 华为
手机机型: NOVA7 5G版
页面类型: vue
打包方式: 离线
项目创建方式: HBuilderX
操作步骤:
预期结果:
能够发现设备
能够发现设备
实际结果:
发现设备0台
发现设备0台
bug描述:
华为NOVA7 5G版无法发现设备。
问题排查
下载官方app “hello uni-app”
进入到蓝牙板块 ,初始化蓝牙模块=》开始搜索蓝牙设备=》选择设备
modal弹框显示已经发现0台设备(表现为搜索不到任何)
这是官方demo的表现。
自测时排查方案
//开始搜索蓝牙设备
startBluetoothDevicesDiscovery() {
if(that.searchLoading){
return
}
that.searchLoading = true;
uni.startBluetoothDevicesDiscovery({
success(res) {
console.log("正在搜索蓝牙2设备...,启动发现设备监听")
setTimeout(function(){
that.stopBluetoothDevicesDiscovery()
},30000)
that.onBluetoothDeviceFound();
},
fail(e) {
that.searchLoading = false;
console.log('搜索蓝牙失败,错误码:' + (e.errCode || e.errMsg));
if (e.errCode === 10000) {
this.initBle();
return
}
if (e.errCode !== 0) {
initTypes(e.errCode, e.errMsg);
}
}
})
},
//监听发现蓝牙设备
onBluetoothDeviceFound() {
console.log("启动发现设备监听")
uni.onBluetoothDeviceFound(devices => {
console.log("发现到设备")
this.getBluetoothDevices();
});
},
控制台打印:
正在搜索蓝牙2设备...,启动发现设备监听
启动发现设备监听
由此判断,startBluetoothDevicesDiscovery已进入成功回调,onBluetoothDeviceFound并未进入到“发现到设备”这一行。
同时调用getBluetoothAdapterState返回结果可查看到discovery:true。
可以定位onBluetoothDeviceFound接口可能不兼容NOVA7。
另外为了验证蓝牙能力是否正常,直接创建特与定设备的连接
creatConnect() {
var deviceId = "D6:0D:2E:41:FD:7A"
uni.createBLEConnection({
// 这里的 deviceId 需要已经通过 createBLEConnection 与对应设备建立链接
deviceId,
success: res => {
console.log(res);
console.log('连接蓝牙成功:' + res.errMsg);
// 连接设备后断开搜索 并且不能搜索设备
uni.showToast({
title: '连接成功',
icon: 'success',
duration: 2000
});
},
fail: e => {
console.log('连接低功耗蓝牙失败,错误码:' + e.errCode);
if (e.errCode !== 0) {
// initTypes(e.errCode);
}
}
});
},
createBLEConnection走进成功的回调,并且notifyBLECharacteristicValueChange,onBLECharacteristicValueChange都表现正常。能够订阅变化的特征值。
再另外,在NOVA7本机的蓝牙功能模块下,能够发现我需要连接的目标设备。证明NOVA7本身能够搜索到设备的。
heesim (作者)
谢谢!!是这样的!
2020-06-12 16:34