Bluetooth経由で最大3台の外付けiPhoneをコントローラーとして使用するアプリをセットアップしています。すべてが正しく設定されているようで、最初の 2 台のデバイスは正しく接続されますが、3 台目の iPhone を接続しようとすると、接続が拒否されます。
私のコードに何らかの制限や問題がありますか? 3 台目のデバイスが接続できないのはなぜですか?
- (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 を異なる順序で接続しようとしましたが、プレーヤー 2 またはプレーヤー 3 の場合は 3 つのデバイスすべてが接続されますが、プレーヤー 4 は接続を拒否します。
編集:
接続されているデバイスのいずれかを切断すると、プレーヤー 4 デバイスが接続されます。