gpt4 book ai didi

iOS 之前绑定(bind)的 BLE 设备

转载 作者:行者123 更新时间:2023-12-03 20:27:20 25 4
gpt4 key购买 nike

我到处寻找这个问题的答案,但尚未找到明确的答案...请帮忙...

我创建了一个应用程序,用于连接并绑定(bind)到需要引脚的 BLE 设备。在触发 iOS 蓝牙绑定(bind)对话框之前,会实用地创建 pin 并将其显示给用户。到目前为止,一切都很好。如果用户在绑定(bind)对话框中正确输入引脚,则手机和 BLE 设备现在已绑定(bind),每个人都很高兴。

现在用户关闭应用程序并终止蓝牙连接。

当应用程序再次启动并发现 BLE 设备时,有什么方法可以知道绑定(bind)已经发生?基本上,如果设备已经绑定(bind),我不想向用户重新显示 PIN。

我当前正在保存 BLE 设备的标识符并调用 RetrievePeripheralsWithIdentifiers 以查看该设备之前是否已连接。这是可行的,但如果用户转到蓝牙列表并选择“忘记此设备”,RetrievePeripheralsWithIdentifiers 仍会返回其外围设备。我尝试过重启手机、卸载并重新安装该应用程序。似乎没有什么能让 iOS 忘记在过去的某个时刻,该标识符已连接...

救命!

最佳答案

iOS 没有任何用于配对或绑定(bind)的 API。 iOS 仅在其他设备请求或读取需要安全性的特征时才会提示配对对话框。您的应用甚至不会知道正在显示配对对话框、配对完成时或当前链接何时/是否已加密。

如果设备已经绑定(bind),并且可以使用 iOS 在之前的配对过程中存储的 LTK(从设备也有),则链接将自动加密,因此不会显示新的配对对话框。

有关先前连接的设备的列表与绑定(bind)设备无关。这只是以前已知的设备的列表。

关于iOS 之前绑定(bind)的 BLE 设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48361435/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com