收藏
回答

ios 连接蓝牙问题

问题模块
客户端

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

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

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

20 个回答

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

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

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

    2017-08-04
    赞同 11
    回复 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-04

    好的,了解

    2017-08-04
    赞同
    回复
  • 菲戈
    菲戈
    2017-08-16

    我的advertisData 为null是怎么回事


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

    advertisDatavConsole 无法打印出 ArrayBuffer 类型数据。@周龙飞

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

    我在想有没有一个方法能查看advertisData里边都有神马东西

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

    我现在ios设备上将advertisData转为based64之后打印的东西不是mac地址,但是以前是的。以前mac地址形如(60:64:05:8F:14:6b)现在是这种31B0DF41D3E7-4F15-8907-74E15773D73A

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

    ArrayBuffer 类型数据转成16进制字符串,就可以看到了。

    看到也看不懂,

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

    @周龙飞

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

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

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

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

    2017-08-17
    赞同
    回复