Подтвердить что ты не робот

IOS6: CBPeripheral отменяется при подключении

Я пытаюсь подключиться к устройству Bluetooth BTLE. У меня нет проблем с обнаружением периферии.

Однако, когда я пытаюсь подключиться к периферии, я получил следующее предупреждение.

2013-04-05 22: 10: 36.110 CoreBluetooth [ПРЕДУПРЕЖДЕНИЕ] 7DA9E322-D710-081B-4A9D-526DE546B13C, Name = "Find My Car Smarter", IsConnected = NO > отменяется при подключении

Кроме того, не вызываются ни один из соответствующих методов делегата:

didConnectPeripheral:
didFailToConnectPeripheral:

Я боролся с этим часами... Пожалуйста, помогите.

4b9b3361

Ответ 1

Короткий ответ: вам нужно сохранить периферийное устройство.

Длительное объяснение: Core Bluetooth не знает, интересуетесь ли вы этим периферийным устройством, когда оно обнаружено. Недостаточно подключения к нему, вам нужно его сохранить.

Добавьте свойство к классу, в котором вы делаете все это:

@property (strong) CBPeripheral     *connectingPeripheral;

И затем назначьте это периферийное свойство, когда устройство будет обнаружено, прежде чем вы вернетесь из didDiscoverPeripheral:

- (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI
{
  DDLogVerbose(@"Discovered peripheral: %@ advertisement %@ RSSI: %@", [peripheral description], [advertisementData description], [RSSI description]);

  [central connectPeripheral:peripheral options:nil];
  self.connectingPeripheral = peripheral;
}