CBPeripheralManager如何知道核心蓝牙中的中央设备是连接还是断开连接?

时间:2014-10-22 14:12:52

标签: ios macos cocoa bluetooth-lowenergy core-bluetooth

在中央端,将在连接或断开连接时调用CBPeripheral代理。但CBPeripheralManager如何知道它是由中央设备连接或断开连接的?此外,外围设备是否可以拒绝来自中央设备的连接请求?

1 个答案:

答案 0 :(得分:6)

当中央连接到您的应用提供的外围服务时,您不会收到特定通知。您可以通过以下CBPeripheralManagerDelegate方法推断连接 -

  • didSubscribeToCharacteristic
  • didReceiveReadRequest
  • didReceiveWriteRequest

如果您通过didSubscribeToCharacteristic收到了订阅,则可以在收到didUnsubscribeFromCharacteristic的相应电话时推断断开连接。如果中心没有使用订阅,那么您没有迹象表明它们已经断开连接 - 您只是不会再获得读/写请求。

您无法拒绝来自中心的连接。您可以对一个或多个特征设置加密要求。然后,当中央首次尝试读取/写入/通知该特征时,这将启动基于引脚的配对过程。

您还可以实施某种形式的身份验证过程,其中在响应中央的其他读/写请求之前,中心需要响应质询/为特征等写入密码。

相关问题