uni.openBluetoothAdapter({
success(res) {
uni.startBluetoothDevicesDiscovery({
success(res) {
uni.onBluetoothDeviceFound(function(res){
console.log('device:' + JSON.stringify(res.devices))
})
},
fail(res) {
console.log("faile res=", res)
}
})
}
})
- 发布:2021-04-06 10:38
- 更新:2021-04-28 09:50
- 阅读:1705
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: win10
HBuilderX类型: 正式
HBuilderX版本号: 3.1.7
手机系统: Android
手机系统版本号: Android 10
手机厂商: 小米
手机机型: mi8
页面类型: vue
打包方式: 云端
项目创建方式: HBuilderX
示例代码:
操作步骤:
使用uni.startBluetoothDevicesDiscovery搜索蓝牙设备,在uni.onBluetoothDeviceFound里打印出蓝牙设备信息,设备信息里ManufacturerData 数据段总是为空。
使用uni.startBluetoothDevicesDiscovery搜索蓝牙设备,在uni.onBluetoothDeviceFound里打印出蓝牙设备信息,设备信息里ManufacturerData 数据段总是为空。
预期结果:
根据onBluetoothDeviceFound API介绍,期待设备信息包含ManufacturerData 信息。
devices 的结构
advertisData ArrayBuffer 当前蓝牙设备的广播数据段中的 ManufacturerData 数据段。
根据onBluetoothDeviceFound API介绍,期待设备信息包含ManufacturerData 信息。
devices 的结构
advertisData ArrayBuffer 当前蓝牙设备的广播数据段中的 ManufacturerData 数据段。
实际结果:
如附件中的两个图,wireshark抓到的报文里有manufacturer字段,hxbuilder log却显示advertisData字段为空。
如附件中的两个图,wireshark抓到的报文里有manufacturer字段,hxbuilder log却显示advertisData字段为空。
bug描述:
问题:
1.使用uni.startBluetoothDevicesDiscovery搜索蓝牙设备,在uni.onBluetoothDeviceFound里打印出蓝牙设备信息,设备信息里ManufacturerData 数据段总是为空。
uni.onBluetoothDeviceFound不能返回ManufacturerData 数据段。
2.设备A,设备B
B关闭了蓝牙的notify功能,A主动去read的时候,拿不到B蓝牙返回的数据,原生里面是可以有方法获取到的
uni.notifyBLECharacteristicValueChange({
state: true, // 启用 notify 功能
// 这里的 deviceId 需要已经通过 createBLEConnection 与对应设备建立链接
deviceId:deviceId,
// 这里的 serviceId 需要在 getBLEDeviceServices 接口中获取
serviceId:serviceId,
// 这里的 characteristicId 需要在 getBLEDeviceCharacteristics 接口中获取
characteristicId:characteristicId,
success(res) {
console.log('========设置通知监听成功:' + res.errMsg);
console.log(JSON.stringify(res));
}