Public Address模式下设置新的device name,重启设备,advertising name还是显示上一次设置的名字。
如何做到设备名字改变,立即刷新advertising name?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Public Address模式下设置新的device name,重启设备,advertising name还是显示上一次设置的名字。
如何做到设备名字改变,立即刷新advertising name?
可能是 App 的问题。
用 Lightblue 试一下,应该不会去拿 cache 过的设备;Simplelink Connect 可能把上一次的 device name 保存了,就没有主动拿新的 device name。
我看了下这个函数:GAPBondMgr_FindAddr()
它就是针对 random private resolvable address (RPA)类型的地址有效。
RPA模式下这个函数返回false所以快速刷新设备名吗?
正如上面说到的,手机缓存了之前的设备信息,解决办法可以是:
- 点击”忽略该设备“来清除之前的信息。
- 关闭并重新打开手机的蓝牙功能。
- 切换到飞行模式,再切回正常模式,可以清除缓存并强制刷新设备列表。
方法2和3试过了,甚至重启了手机,设备名字都没有更新。
对于方法1忽略该设备,这个是不是要对BLE做什么设置,目前我这里连接后没有办法去执行这个操作。
方法2和3试过了,甚至重启了手机,设备名字都没有更新。
等待一段时间或者尝试在不同的蓝牙扫描应用程序中进行扫描。
对于方法1忽略该设备,这个是不是要对BLE做什么设置,目前我这里连接后没有办法去执行这个操作。
通常是不需要额外设置的。
方便手机截个图看下吗?
试过了,包括重启手机。
也试过烧写示例中其他BLE程序,也是没有图标i,无法执行“断开连接”或者“忽略此设备”操作。
我猜测是需要给BLE设置什么属性,在设备列表中才会有这个图标i。
CC2340 用于蓝牙低功耗(BLE)的应用,而不是经典蓝牙。
所以当手机通过蓝牙连接到设备时,实际上是建立了一种 BLE 连接,而不是经典蓝牙连接。
在 iOS 的蓝牙界面,通常不会提供忽略 BLE 设备的选项。
在 iOS 的蓝牙界面,通常不会提供忽略 BLE 设备的选项。
这个有相关链接查阅吗?
现在这种情况进入了死结,还得麻烦帮忙查找如何清空iOS设备存储的BLE信息,这个对我现在的开发影响很大。
您的需求是设备端修改了 device name,在下一次设备上电时 device name可以自动更新。
现在安卓的 App 是正常的,只是 iOS 没有更新。
基于之前的测试, iOS 上的 Light Blue 或 Simplelink Connect 都没有自动更新 device name。
给出的解决方案是:
1.关闭蓝牙,然后再次打开,看看是否能获取到更新后的 device name。
2.重启 iOS 设备可能会清除缓存并更新设备名称。
尝试上面的两种方案后,重新连接设备,名字会更新吗?
广播包的数据一直都是最新的,iOS端Simplelink connect是否可以从广播包拿设备名字显示?
这个是可以的,但是需要修改应用程序。
1.关闭蓝牙,然后再次打开,看看是否能获取到更新后的 device name。
2.重启 iOS 设备可能会清除缓存并更新设备名称。
尝试上面的两种方案后,重新连接设备,名字会更新吗?
这些方式都试过了,设备名字并没有更新。iOS设备连接间隔一天后再次连接,显示的还是旧名字。
如果我通过simplelink连接BLE,然后退出到蓝牙设备列表,再连接-退出,如此反复,一般两三次,设备名称就更新了。所以我猜测有什么消息会影响到iOS设备的名称更新。如果在广播包里加上这个消息,也可能会很快刷新名字。
如果我通过simplelink连接BLE,然后退出到蓝牙设备列表,再连接-退出,如此反复,一般两三次,设备名称就更新了。所以我猜测有什么消息会影响到iOS设备的名称更新。如果在广播包里加上这个消息,也可能会很快刷新名字。
按照开发经验是这样的:广播包里加更新字段,有一个字段如果是通过接口获取的,长时间不动,会考虑缓存下来,方便下次快速读取;如果接口里面的字段数据发生了更改,那么接口的 header 里必须有一个更新的标识,这样就知道有更新,然后去重新获取。
可以看下广播包相关的文档,是不是有类似的实现机制。