我正在尝试在 BLE Central 作为客户端和服务器工作的 iOS 中重建一个 Android BLE 应用程序。
首先,本地设备正在扫描 BLE 设备,发现它并连接到它。(客户端角色)然后本地设备接管服务器角色,并在任何特性值发生更改时通知 BLE 设备。
在 Android 中它运行良好,因为我可以使用发现的 BluetoothDevice 并通过该BluetoothDevice.connectGatt
方法使其订阅我的特征更改。更改值时,我使用该notifyCharacteristicChanged
方法通知设备。
我想最重要的区别是,在 iOS 中,在设备发现之后,我只得到一个CBPeripheral
作为发现的设备,我不能将它用于任何基于客户端的功能,例如订阅服务器。至少,这是我目前无法弄清楚的。
我读到这个:iOs CoreBluetooth Central Server and Peripheral Client thread 和链接的邮件列表讨论:http ://lists.apple.com/archives/bluetooth-dev/2013/Nov/msg00047.html关于 iOS 设备充当客户端和服务器理论上它应该是可能的,我想知道是否有人找到了一种方法让发现的远程设备订阅我的特性更改。