2

我正在设置一个应用程序,它通过蓝牙最多使用 3 个外部 iPhone 作为控制器。一切似乎都已正确设置,前 2 台设备将正常连接,但一旦我尝试连接第三部 iPhone,它就拒绝连接。

我的代码有限制或问题吗?为什么第三台设备连接不上?

- (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 设备将连接。

4

0 回答 0