使用CoreBluetooth框架访问蓝牙低功耗设备时,CBCentralManager
会为外围设备返回CBPeripheral
。
外围设备上有多种服务,我想将处理不同服务的特征值更新的代码分成多个类。因此,我需要将多个id<CBPeripheralDelegate>
代理附加到外围设备。但是,这是不可能的,因为只支持一个代理。
有没有办法为同一个外设获得多个CBPeripheral
实例?
如果多个应用程序可能访问同一个外围设备,它们是否会收到不同的CBPeripheral
个实例?如果是,他们会看到其他应用程序的更新吗? (比方说,应用程序A将值写入特征,应用程序B的委托是否也接收[ - peripheral:didWriteValueForCharacteristic:error:]消息?)
是否有任何优雅的方法支持将事件处理代码拆分为多个类?
答案 0 :(得分:4)
answer的CoreBluetooth: How to design code for many characteristics (30 - 40)?有一些设计提示,可能会对您有所帮助。简而言之,创建一个可以是CBPeripheralDelegate
的中介类,并支持多个特征类注册他们想要的任何特征。