如果我们通过 BLE 向同一设备发送多个连接请求会发生什么



我创建了一个与Android手表配对的iPhone应用程序。

每当设备之间的连接丢失时,我都会发送自动重新连接。

if let array:NSArray = self.centralManager.retrievePeripheralsWithIdentifiers([(reconnectedPeripheral?.identifier)!]){
        if array.count > 0 {
            let peripherals:CBPeripheral = array[0] as! CBPeripheral
            centralManager.connectPeripheral(peripherals, options: nil);
            self.scannedPeripheral = peripherals
            self.scannedPeripheral?.delegate = self;
            scanType = .Reconnect
        }
    }
我还有一个手动重新连接

按钮,允许用户在自动重新连接不起作用的情况下手动重新连接。在手动重新连接的情况下,也会调用上面的代码。

如果将连接请求发送到手表两次,会发生什么情况?手表会收到两个连接请求吗?

根据BLE标准,两个设备同时有多个连接是非法的。控制器应该注意它只是丢弃连接请求(但谁知道是否有错误的控制器忘记了这一点(。

无论如何,从站必须执行可连接的广告才能接受新连接。

我也非常确定iOS永远不会多次尝试连接到同一设备。如果您多次调用connectPeripheral ,我认为没关系。此外,如果您有两个应用程序连接到同一个从属设备,它会将两个应用程序"多路复用"到单个 GATT 连接。

最新更新