【问题标题】:When does iOS display "need to bond" dialog?iOS 什么时候显示“需要绑定”对话框?
【发布时间】:2018-08-18 09:23:49
【问题描述】:

我正在编写一个与我们正在开发的 BLE 设备通信的 iOS 应用程序。大多数通信不需要绑定,但有一些安全功能需要绑定。我已将这些安全功能放在一个单独的服务中,该服务已被标记为需要绑定,当我尝试访问该服务时,iOS 会正确启动绑定过程。

我遇到的问题是,我希望能够准确控制这种绑定发生的时间,以便我可以适当地设计我的 UI。大多数情况下,iOS 会等到我尝试访问安全服务后再开始绑定过程,但我也看到绑定对话框在我调用 CBPeripheral.DiscoverCharacteristics() 后不久出现,并且在我实际使用安全服务之前很久任何事物。如果我在已经绑定一次后重新运行应用程序,然后在 iOS 和远程 BLE 设备中删除绑定,则绑定对话框似乎稍后会出现。

我猜 iOS 正在缓存服务/特征信息,所以在第一次连接后,当我调用 CBPeripheral.DiscoverCharacteristics() 时,它实际上并没有与远程 BLE 设备通信,因此不会触发绑定的需要.

有一个discussion 关于如何清除 OSX 上的蓝牙缓存,但对于 iOS 没有类似的。我试过这个:

  1. 在 iOS 中解除绑定设备
  2. 关闭蓝牙
  3. 关闭 iPad
  4. 重新开启 iPad
  5. 重新开启蓝牙

但是绑定请求对话框仍然稍后出现,我猜这意味着缓存实际上并没有被清除。

【问题讨论】:

    标签: ios bluetooth-lowenergy pairing


    【解决方案1】:

    如果设备未绑定并且外围设备发送 SMP“安全请求”,它将显示弹出窗口。

    当您尝试与受保护的特征交互时,它也会显示。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-02
      • 1970-01-01
      • 2012-05-15
      • 2012-09-16
      • 1970-01-01
      • 1970-01-01
      • 2010-09-10
      相关资源
      最近更新 更多