收藏
回答

咨询获取蓝牙设备广播数据的问题

问题模块
API和组件

连接体重秤(广播模式)设备,实时体重数据是通过广播数据获取,在ios上wx.onBluetoothDeviceFound方法会根据广播数据的变化多次搜索到蓝牙设备,从而提取广播数据。但是在android设备上,只能搜索到一次设备。

请问安卓上是否作了去重复处理。那如果要通过小程序 监听蓝牙广播应该如何操作

最后一次编辑于  2017-05-17
回答关注问题邀请回答
收藏

4 个回答

  • 好久不見
    好久不見
    2017-07-28

    数据格式是   '551A2B......' (具体根据蓝牙协议)

    之前我遇到个问题  在微信6.5.7 解析广播数据 需要使用data = wx.base64ToArrayBuffer(advertisData)

    str = buf2hex(data)

    之后的版本直接使用buf2hex(advertisData)


    解析notify数据的时候  直接使用buf2hex(res.value)

    你可以尝试一下


    2017-07-28
    赞同
    回复
  • vix
    vix
    2017-07-27

    Array.prototype.map.call(new Uint8Array(buffer), x => ('00' + x.toString(16)).slice(-2)).join(''); 返回的数据什么格式?还需要后续处理吗?应为这样得到的数据和我在app(iOS)端获取的数据不一样?🙏🙏🙏

    2017-07-27
    赞同
    回复
  • 好久不見
    好久不見
    2017-05-18

    谢谢,已经可以正常获取了。但是红米手机上(android4.4.4)参数无效。

    还有一个小问题,两个系统广播数据类型不同,Ios广播数据需要base64ToArrayBuffer转换后才是ArrayBuffer类型

    ios:

    var data = wx.base64ToArrayBuffer(advertisData)

    var str = buf2hex(data)


    android:

    buf2hex(advertisData)


    function buf2hex(buffer) {

      return Array.prototype.map.call(new Uint8Array(buffer), x => ('00' + x.toString(16)).slice(-2)).join('');

    }


    2017-05-18
    赞同
    回复
  • 马凯Kevin
    马凯Kevin
    2017-05-17

    startBluetoothDevicesDiscovery


    allowDuplicatesKeyboolean是否允许重复上报同一设备如果允许重复上报,则onDeviceFound 方法会多次上报同一设备,但是 RSSI 值会有不同

    可以先尝试下这个参数,后面会公开出去。

    2017-05-17
    赞同
    回复