迪格立之
迪格立之
  • 发布:2020-10-26 12:41
  • 更新:2021-12-27 18:54
  • 阅读:2414

【报Bug】uni.onBluetoothDeviceFound(CALLBACK) 捕捉不到ManufacturerData

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win10

HBuilderX类型: 正式

HBuilderX版本号: 2.9.3

手机系统: Android

手机系统版本号: Android 8.1

手机厂商: vivo

手机机型: y81s

页面类型: vue

打包方式: 云端

项目创建方式: HBuilderX

示例代码:
                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)  
                            }  
                        })  
                    }  
                })

操作步骤:

使用uni.startBluetoothDevicesDiscovery搜索蓝牙设备,在uni.onBluetoothDeviceFound里打印出蓝牙设备信息,设备信息里ManufacturerData 数据段总是为空。

预期结果:

根据onBluetoothDeviceFound API介绍,期待设备信息包含ManufacturerData 信息。
devices 的结构
advertisData ArrayBuffer 当前蓝牙设备的广播数据段中的 ManufacturerData 数据段。

实际结果:

如附件中的两个图,wireshark抓到的报文里有manufacturer字段,hxbuilder log却显示advertisData字段为空。

bug描述:

uni.onBluetoothDeviceFound不能返回ManufacturerData 数据段。

2020-10-26 12:41 负责人:DCloud_Android_zl 分享
已邀请:
迪格立之

迪格立之 (作者)

                        uni.startBeaconDiscovery({  
                            uuids: ["01122334-4556-6778-899a-abbccddeeff0"],  
                            success(res) {  
                                console.log("startBeaconDiscovery=", JSON.stringify(res))  
                                uni.onBeaconUpdate((beacons) => {  
                                    console.log("onBeaconUpdate=", JSON.stringify(beacons))  
                                })  
                            },  
                            fail(res) {  
                                console.log("in startBeaconDiscovery, faile res=", JSON.stringify(res))  
                            }  
                        })

ibeacon discovery是可以检索到这个设备的。

e***@sina.cn

e***@sina.cn

这个BUG截止目前还未修复,不知道有没有大神 写个蓝牙的原生sdk插件,来弥补下这个问题,除了这个问题,还有一个问题就是:设备A,设备B
B关闭了蓝牙的notify, A 在read的时候,拿不到B蓝牙返回的数据

DCloud_Android_zl

DCloud_Android_zl

同一个设备,用微信小程序试一下,看可不可以获取到数据。

4***@qq.com

4***@qq.com

用apicloud 把, 我也遇到了。页面都写完了,最后蓝牙调试不行,怎么都获取不到,然后试了那个可以希望能帮到你

鑫宏创新

鑫宏创新

我也遇到了同样的问题,是偶尔性出现,你们怎么解决这个问题的

该问题目前已经被锁定, 无法添加新回复