iOS核心蓝牙PIN码

时间:2014-10-21 09:46:02

标签: ios bluetooth-lowenergy core-bluetooth cbcentralmanager cbperipheral

我有一个需要PIN码的BLE外设。 我在iOS 7上使用Core Bluetooth CBCentralManager连接到此外围设备。

当我连接到此外围设备时,' didConnectPeripheral' (中央代表)在成功完成PIN码验证之前被称为

iOS仅在' didConnectPeripheral'之后显示针脚代码对话框被称为。

完成此PIN码对话框并完成身份验证过程后,我需要开始与外围设备进行交互。如何确定何时发生这种情况?

挑战是仅在认证成功后继续,但是:

  1. iOS通话&did; failToConnectPeripheral' 之前到对话框 展示。
  2. iOS不会调用' didConnectPeripheral'再次,如果PIN码授权成功。
  3. iOS不会调用' didFailToConnectPeripheral'再次如果PIN码 授权失败。
  4. 从上面来看,我一直无法确定:

    1. 对话框完成时。
    2. PIN码授权是否成功。
    3. 任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:1)

根据我对CoreBluetooth的使用经验,您不会收到任何关于您是否获得授权以及何时完成密码授权的信息,直到您尝试未经授权的操作,这将导致三个错误响应之一失败:

InsufficientEncryption
InsufficientAuthentication
InsufficientAuthorization

外围设备决定了您将返回哪个错误。 (从技术上讲,它们是由GATT在BLE 4.X规范中定义的,但它是在外围端控制的所有实现细节)