j***@qq.com
j***@qq.com
  • 发布:2019-02-14 16:24
  • 更新:2019-05-08 14:16
  • 阅读:1193

【报Bug】Android手机上获得的BLE设备广播数据内容不对

分类:uni-app

详细问题描述(DCloud产品不会有明显的bug,所以你遇到的问题大都是在特定环境下才能重现的问题,请仔细描述你的环境和重现方式,否则DCloud很难排查解决你的问题)
[内容]
BLE设备的广播数据中的advertisData在安卓手机上内容不对,而且所有设备都一样
重现步骤
[步骤]
用Android手机调用BLE的API,搜索附近的BLE设备
[结果]
搜索到设备,获得到的所有BLE设备的广播数据中的advertisData都一样,转成16进制字符串是:A1B8DE72D02BADAC81B9F7DE
[期望]
搜索到设备,并且正确获得BLE设备的广播数据

IDE运行环境说明
windows HBuilderX 1.5.4

App运行环境说明
[Android版本号]
5.1.1
[手机型号]
OnePlus2

附件

[App问题代码片段]

uni.onBluetoothDeviceFound(function(devices) {

                    //正确的广播数据是这样的:1111010303ffff95033286,mac地址最后12位  
                    var macAddressTmp = that.arrayBufferToHexString(  
                        devices.devices[0].advertisData  
                    );  
                    console.log('advertisData is '+macAddressTmp.toString());  

arrayBufferToHexString(buffer) {
let bufferType = Object.prototype.toString.call(buffer)
if (buffer != '[object ArrayBuffer]') {
return
}
let dataView = new DataView(buffer)

        var hexStr = '';  
        for (var i = 0; i < dataView.byteLength; i++) {  
          var str = dataView.getUint8(i);  
          var hex = (str & 0xff).toString(16);  
          hex = (hex.length === 1) ? '0' + hex : hex;  
          hexStr += hex;  
        }  

        return hexStr.toUpperCase();  
      },  

[安装包]
https://pan.baidu.com/s/1DZXxP4LuabIKqdoORG_Xkw

联系方式
[QQ]
376642164

2019-02-14 16:24 负责人:无 分享
已邀请:
j***@qq.com

j***@qq.com (作者)

请问问题解决了么?

2***@qq.com

2***@qq.com - 没有

有官方出来解答一下吗,我也遇到这个问题,产品都没法做下去了啊!

2***@qq.com

2***@qq.com - 没有

附上我的测试环境:
HBuildX 1.8.2版本
测试的的手机:华为荣耀9 android8.0,苹果7 iOS12.2。
现象跟上文完全一样,同样的设备,采用uni的代码只能得到一串字符串a1 b8 de 72 d0 2b ad ac 81 b9 f7 de,与上文相同。
用第三方工具nRF connect app可以看到具体的advertisData数据,所以设备肯定是没问题的。

2***@qq.com

2***@qq.com

解决了 吗?Android和iOS上的解析都是错误的,微信小程序端的是正确的?官方出来解释一下啊

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