Closed tilongzs closed 5 months ago
这是个已知问题,安卓上的广播名称来自蓝牙适配器的名称,我在开始广播前设置了蓝牙适配器的名称,但是不会立即生效,也没有任何方式监听适配器名称的改变,所以目前广播会使用上一次设置的名称(第一次会使用蓝牙设置里面的默认名称)
目前没有办法解决这个问题,如果有好的想法可以提出来。
不过由于关于这个问题我能查到的资料相当有限,需要进一步调查。
谢谢,我看到了stackoverflow里的讨论。目前通过startAdvertising()后立即stopAdvertising(),再重新startAdvertising()就行了。
有时间可以测试一下 6.0.0 版本下这个问题是否还存在,新版本中名称改为存放在扫描回复中了
我测试了下还是需要重新广播才生效,暂时没有更好的解决方案
今天偶然看到改变蓝牙名称后会有个本地名称改变的广播,感觉可以解决这个问题
例如在一个手机创建一个名字为“1”的广播:
几秒后停止广播:
再创建一个名字为“2”的广播,另一个手机通过CentralManager.instance.discovered.listen()搜索到依然是"1“,直到停止广播,再创建一个名字为“3”的广播,另一个手机才搜索到”2“,而不是”3“。重启了也依然如此。