收藏
回答

ios 连接蓝牙问题

问题模块
客户端

ios连接蓝牙是用UUID,并且不是固定的。而安卓是Mac地址,是固定的。我们通过过滤产品蓝牙的name,和RRIS值来取UUID,但是问题来了:我们两个蓝牙模块name是一样的,RRIS更是接近,然后我们程序就连接了两次蓝牙,并且无法确定是连接的是哪个蓝牙,

请问ios连接蓝牙有没有读取Mac地址来这种固定值来连接蓝牙方式??

最后一次编辑于  2017-08-03  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

17 个回答

  • 王翊夫if
    王翊夫if
    2017-08-04

    你好,iOS由于苹果限制,是拿不到Mac地址的。

    现在的解决方案,一般在设备厂商定制设备蓝牙广播包的自定义数据中填入该设备的唯一标识(如Mac地址),在小程序中可以通过device中 advertisData 字段拿到。

    2017-08-04
    赞同 1
    回复 3
    • 许力鹏
      许力鹏
      2018-07-02

      请问一下,IOS连接同一个蓝牙设备UUID是不固定的?什么情况下变?重启?还是时间周期?

      2018-07-02
      回复
    • 王翊夫if
      王翊夫if
      2018-08-13回复许力鹏

      从目前经验来看,多台 iOS 机器(不同版本)在多个 App 中搜索到的同个蓝牙设备 UUID 都是相同的,但苹果在文档里并没有保证 Mac 地址与获取到的 UUID 一对一的关系。

      2018-08-13
      回复
    • 许力鹏
      许力鹏
      2018-08-14回复王翊夫if

      谢谢

      2018-08-14
      回复
  • 钟振智
    钟振智
    2017-08-17

    我为啥要和你解释,我擦@周龙飞                                                            

    2017-08-17
    赞同
    回复
  • 菲戈
    菲戈
    2017-08-17

    @NGK在吗

    2017-08-17
    赞同
    回复
  • 菲戈
    菲戈
    2017-08-17

    老哥,要不要加下微信,解释下:我的微信:zlf1525283969

    2017-08-17
    赞同
    回复
  • 菲戈
    菲戈
    2017-08-17

    我试试

    2017-08-17
    赞同
    回复
  • 菲戈
    菲戈
    2017-08-17

    我现在就想知道advertisData里边都有神马东西


    2017-08-17
    赞同
    回复
  • 钟振智
    钟振智
    2017-08-17

     Array.prototype.map.call(new Uint8Array(devices.devices[0].advertisData), x => ('00' + x.toString(16)).slice(-2)).join('');

    你看看是不是你想要的??@周龙飞

    2017-08-17
    赞同
    回复
  • 菲戈
    菲戈
    2017-08-17

    怎么转化为2进制吗

    2017-08-17
    赞同
    回复
  • 菲戈
    菲戈
    2017-08-17

    我转过了,并且把设备的mac地址也转换了,安卓上边把mac地址转换之后和把广播信息转换之后能够匹配@NGK

    2017-08-17
    赞同
    回复
  • 钟振智
    钟振智
    2017-08-17

    你要转2进制才是你想要的@周龙飞

    2017-08-17
    赞同
    回复

正在加载...