我使用iphone作为外设,通过蓝牙低功耗显示一些值,并使用浅蓝色(在另一个iphone上)进行调试。我所看到的是20秒后aprox与外围设备的连接丢失了吗?有什么想法吗?
外设iPhone:5c iOS 8.1 中央iPhone与lightblue应用程序:5s iOS 8.1
当我使用带有浅蓝色桌面应用程序的Mac Book Pro OS X 10.9.5时,与外围设备的连接也会丢失。
我也尝试过我写的另一个应用程序来检查连接错误,我得到'外围设备与我们断开连接'作为错误消息,这个应用程序与其他BLE设备正常工作。所以问题是iPhone处于外围模式时。
答案 0 :(得分:3)
diconnection之前的20秒延迟是安全管理员问题的典型症状。
安全管理器协议是为BLE添加的新块。 链路层将允许连接,然后有20秒的间隙,而安全管理器看看它是否已经存储了它与现在连接的设备配对后应存储的长期密钥。如果它找不到这些密钥,那么它将终止链路层连接。
如果您不需要安全连接,请删除“加密要求”'创建设备属性时的属性:
self.cp_charac = [[CBMutableCharacteristic alloc]
initWithType:[CBUUID UUIDWithString:CONTROL_POINT_CHARAC]
properties:CBCharacteristicPropertyRead | CBCharacteristicPropertyWrite |
CBCharacteristicPropertyWriteWithoutResponse | CBCharacteristicPropertyNotify
value:nil
permissions:CBAttributePermissionsReadEncryptionRequired | CBAttributePermissionsWriteEncryptionRequired ];
您可以在权限下方的代码段中看到它们。
BT SIG网站上的Security_Manager.pdf第16页(doc by thomas.t.muller@nmp.nokia.com)。
另请参阅BT Spec,https://www.bluetooth.org/en-us/specification/adopted-specifications Core_v4.1.pdf的第631页说明
如果安全管理器计时器达到30秒,则应认为该程序已失败,并应通知本地更高层。