Ios centralManager(u1;:didConnect:)有时无法进行校准

Ios centralManager(u1;:didConnect:)有时无法进行校准,ios,bluetooth,core-bluetooth,ios-bluetooth,Ios,Bluetooth,Core Bluetooth,Ios Bluetooth,我想构建一个iOS应用程序,它每分钟都与一个可编程外围设备连接,以检索特定的特征。在大多数情况下,这工作得很好,但几小时后,CBPeripheral的状态会在处受阻。如果我再次尝试连接,有时会连接 我试图用蓝牙嗅探器观察这种行为: 1,010,604 38 ADV_IND (pub) 0x000000000159 24 42 00:00:00.000665 23.02.2017 02:55:22.715507 1,010,605 38 CONN

我想构建一个iOS应用程序,它每分钟都与一个可编程外围设备连接,以检索特定的特征。在大多数情况下,这工作得很好,但几小时后,CBPeripheral的状态会在
处受阻。如果我再次尝试连接,有时会连接

我试图用蓝牙嗅探器观察这种行为:

1,010,604   38  ADV_IND         (pub)   0x000000000159  24  42   00:00:00.000665    23.02.2017 02:55:22.715507  

1,010,605   38  CONNECT_IND (rand)  0x000000000901  (pub)   0x000000000159  34  52   00:00:00.000424    23.02.2017 02:55:22.715931  
如您所见,外围设备发出广告,我的iPhone直接用连接指示进行应答。此时,CPPeripheral的状态停留在
。未调用connecting
centralManager(u:didConnect:)


目前,我只是尝试连接到外围设备,第四次或第五次尝试正在工作。但为什么会这样呢?我看不出这种奇怪的行为有什么规律

你是每分钟都断开连接还是试图保持连接?我每次都断开连接。你为什么这样做?为什么不保持联系呢?这是外围设备生产商的要求。他们想通过这种方式节约能源。苹果不喜欢这种尝试,对吧?我本以为持续连接和断开会比简单地保持连接和定期读取值消耗更多的能量。