收藏
回答

startAdvertising广播怎么实时修改manufacturerData数据?

目前有个功能需求是,手机发送的广播数据希望每两秒钟就更新一次。

当前实现的办法是定时器每两秒钟调用一次startAdvertising,在startAdvertising之前调用stopAdvertising,但是出现的问题是,由于startAdvertising发出的mac地址是随机的,就会出现好几个广播包,虽然上一次已经停止了,但是业务需求只需要一个广播。想问下怎么实现只有一个广播包,能实时改变广播数据;或者多次发出startAdvertising,但是MAC地址固定。

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

1 个回答

  • 社区技术运营专员--许涛
    社区技术运营专员--许涛
    2021-07-23

    你好,这里MAC地址随机指的是deviceId?在不同iOS设备上搜到的deviceId不同,为系统以发现设备的时间和设备MAC为种子随机生成的uuid,在安卓上deviceId才是MAC地址,如果想要在iOS设备上拿到MAC地址,可以自己把MAC地址写在manufacturerData字段里,这个字段只有安卓支持

    2021-07-23
    有用
    回复 2
    • 纠结症
      纠结症
      2021-07-26
      你好,这里的MAC地址随机是指的当前小程序发送蓝牙数据的本机的MAC地址,小程序通过外围设备将当前本机创建为蓝牙设备,小程序发送蓝牙广播数据。这种业务逻辑下,另一部安卓手机通过nrf搜索到的当前手机中小程序发送蓝牙广播的设备地址是随机的。
      2021-07-26
      回复
    • 社区技术运营专员--许涛
      社区技术运营专员--许涛
      2021-07-26回复纠结症
      iOS广播的MAC地址是随机的,这个也是系统行为,是无法改变。如果想实现问题中描述的需求,可以通过name或者localName来判断是否为同一手机的广播
      2021-07-26
      回复
登录 后发表内容