收藏
回答

小程序在ios手机上运行,能通过蓝牙接口获取到设备的mac地址吗?

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 需求 wx.onBluetoothDeviceFound 客户端 6.5.3 2.0.0

- 需求的场景描述(希望解决的问题)就是想在ios手机上通过蓝牙接口获取到设备(比如:beacon设备)的mac地址。虽然Android上可以通过deviceid获取到mac地址,但是ios获取到的是设备的uuid。


- 希望提供的能力


回答关注问题邀请回答
收藏

3 个回答

  • 织梦行云
    织梦行云
    2020-08-13

    2020年来上香

    2020-08-13
    有用 1
    回复 10
    • 织梦行云
      织梦行云
      2020-11-07
      找到解决办法了,IOS必须要先搜索设备,然后在wx.getBluetoothDevices接口返回的设备列表有一个字段advertisData,通过算法可以算出MAC地址
      ```js
       let bf = res.devices[i].advertisData.slice(2, 8);
                let mac = Array.prototype.map
                  .call(new Uint8Array(bf), (x) => ("00" + x.toString(16)).slice(-2))
                  .join(":");
                mac = mac.toUpperCase();
      ```
      UUID可以保存起来,之后可通过UUID直连,但是这UUID每个手机都不一样,如果是多人使用的蓝牙设备就得每次都获取了
      2020-11-07
      回复
    • 织梦行云
      织梦行云
      2020-11-07回复织梦行云
      2020-11-07
      回复
    • yoy
      yoy
      2021-11-09
      为什么我解析出来的MAC地址与安卓的MAC地址不一致呢
      2021-11-09
      回复
    • 🍑 🍑
      🍑 🍑
      2022-02-10回复织梦行云
      发现设备的时候onBluetoothDeviceFound方法下就有你需要的蓝牙的advertisData,不需要再单独调用一个方法,另外,你的解析方法不对,按照你的方法解析出来的ios的mac地址和安卓的不一样
      2022-02-10
      1
      回复
    • no.
      no.
      2022-02-17回复🍑 🍑
      请我解决了吗,我解析出来也和安卓的不一样
      2022-02-17
      回复
    查看更多(5)
  • 也许
    也许
    2023-10-09

    我解析出来的也是和安卓的不一样是为什么


    2023-10-09
    有用
    回复 1
  • Mark😋
    Mark😋
    2020-03-17

    楼主解决这个问题了吗,我也遇到

    2020-03-17
    有用
    回复
登录 后发表内容