【问题标题】:iOS: Bluetooth Pairing Request Dialog - Can I know the user's choice?iOS:蓝牙配对请求对话框 - 我可以知道用户的选择吗?
【发布时间】: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


【解决方案1】:

找到我对类似问题here的详细回答。

基本上你应该在配对后写入设备的一个特性,并检查写入是否成功

【讨论】:

    【解决方案2】:

    Apple 非常愚蠢,没有任何 API、回调或任何关于配对的东西。我唯一知道的是,您让您的 BLE 设备发送您在应用程序中收听的通知,配对情况如何。例如,当用户按下取消时,iOS 将发送“配对失败”SMP 命令。

    【讨论】:

    • 即使没有配对,BLE 也能发送通知吗??
    • 当然。 BLE 中的配对和绑定是可选的。
    猜你喜欢
    • 1970-01-01
    • 2016-09-14
    • 1970-01-01
    • 1970-01-01
    • 2015-05-15
    • 1970-01-01
    • 1970-01-01
    • 2013-01-31
    • 2017-02-08
    相关资源
    最近更新 更多