Я настраиваю приложение, которое использует до 3 внешних iPhone в качестве контроллеров через Bluetooth. Вроде все настроено правильно, и первые 2 устройства будут подключаться нормально, но как только я пытаюсь подключить третий айфон, он отказывается к нему подключаться.
Есть ли какие-то ограничения или проблемы с моим кодом? Почему третье устройство не может подключиться?
- (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary<NSString *,id> *)advertisementData RSSI:(NSNumber *)RSSI
{
NSLog(@"Found peripheral: %@\n\twith data: %@", peripheral, advertisementData);
//Check advertisement data for UUID
CBUUID* serviceUUID = [CBUUID UUIDWithString:serviceUUIDString];
NSArray* serviceUUIDs = [advertisementData valueForKey:CBAdvertisementDataServiceUUIDsKey];
if([serviceUUIDs containsObject:serviceUUID])
{
//Valid controller, connect
NSLog(@"Valid peripheral, connecting...");
[self.btManager connectPeripheral:peripheral options:nil];
//Save peripheral as player #x
if(!self.player2)
{
self.player2 = peripheral;
}
else if(!self.player3)
{
self.player3 = peripheral;
}
else if(!self.player4)
{
self.player4 = peripheral;
//Maximum players connected
//Stop scanning
[self.btManager stopScan];
}
else
{
//Maximum players connected
//Ignore and stop scanning
[self.btManager stopScan];
return;
}
if(!_peripherals)
_peripherals = [NSMutableArray arrayWithCapacity:0];
[_peripherals addObject:peripheral];
}
}
Я сохраняю периферийное устройство и вызываю соединение, но оно никогда не завершает соединение. Я пытался подключить каждый из iPhone в разном порядке, и все 3 устройства будут подключаться, если они являются игроком 2 или игроком 3, но игрок 4 отказывается подключаться.
Редактировать:
В секунду, когда я отключу любое из подключенных устройств, подключится проигрыватель 4.