多个CBPeripheral用于同一设备

时间:2012-05-31 15:33:52

标签: ios events core-bluetooth bluetooth-lowenergy

使用CoreBluetooth框架访问蓝牙低功耗设备时,CBCentralManager会为外围设备返回CBPeripheral

外围设备上有多种服务,我想将处理不同服务的特征值更新的代码分成多个类。因此,我需要将多个id<CBPeripheralDelegate>代理附加到外围设备。但是,这是不可能的,因为只支持一个代理。

  • 有没有办法为同一个外设获得多个CBPeripheral实例?

    如果多个应用程序可能访问同一个外围设备,它们是否会收到不同的CBPeripheral个实例?如果是,他们会看到其他应用程序的更新吗? (比方说,应用程序A将值写入特征,应用程序B的委托是否也接收[ - peripheral:didWriteValueForCharacteristic:error:]消息?)

  • 是否有任何优雅的方法支持将事件处理代码拆分为多个类?

1 个答案:

答案 0 :(得分:4)

answerCoreBluetooth: How to design code for many characteristics (30 - 40)?有一些设计提示,可能会对您有所帮助。简而言之,创建一个可以是CBPeripheralDelegate的中介类,并支持多个特征类注册他们想要的任何特征。