【发布时间】:2018-05-12 19:15:27
【问题描述】:
我正在尝试在我的应用中创建一个 BLE 配对用户体验屏幕。 该应用程序会扫描我们的 BLE 设备,并在发现时自动将其连接到 centralManager。然后系统会显示一个蓝牙配对请求对话框(不是我的应用程序的一部分,而是 iOS 的)。用户有两个选项 - 配对/取消。 事情是 - 即使用户选择了取消操作 - 外围设备仍然保持连接到 centralManager。 (正在触发 centralManagerDidConnect 功能)即使它没有与手机配对。有什么方法可以知道用户是选择配对设备还是取消配对??? 谢谢!
【问题讨论】:
-
如果配对成功,您将能够成功读取加密特征
-
嗨,即使我选择取消,我仍然可以读取特征...,
-
那你为什么要配对?只有在遇到加密特征时才会启动配对(实际上是绑定)。如果您不需要加密,则无需配对。
-
我可能误解了您所说的“加密特征”是什么意思。我首先调用“ConnectToPeripheral”函数,然后调用“发现特征”(当然是在发现服务之后)。即使我点击对话框中的“取消”按钮,我也会收到积极的回调。这是你的意思吗 ?我们的 BLE 设备使用 HID - 我认为这就是需要配对的原因。
-
HID 部分和配对与 CoreBluetooth 和您的应用无关。 HID 由 iOS 单独管理。对于 GATT 配置文件(与核心蓝牙一起使用),仅当其中一个特性配置了加密时才会启动配对。这就是为什么无论配对状态如何,您仍然可以读取特征;您的特征不需要配对。您可能需要对您的一个特征进行加密,然后如果您可以读取到您知道配对已经发生,或者您可以通过特征从外围设备公开配对状态
标签: ios swift bluetooth bluetooth-lowenergy