同一设备的多个 CBPeripheral
Posted
技术标签:
【中文标题】同一设备的多个 CBPeripheral【英文标题】:Multiple CBPeripheral's for same device 【发布时间】:2012-05-31 15:33:51 【问题描述】:当使用 CoreBluetooth 框架访问蓝牙低功耗设备时,CBCentralManager
为外围设备返回一个 CBPeripheral
。
外围设备上有多个服务可用,我想将处理不同服务的特征值更新的代码拆分为多个类。因此,我需要将多个 id<CBPeripheralDelegate>
代表附加到外围设备。但是,这是不可能的,因为只支持一个委托。
有没有办法为同一个外围设备获取多个CBPeripheral
实例?
如果有可能多个应用程序访问同一个外围设备,它们会收到不同的CBPeripheral
实例吗?如果是,他们是否看到来自其他应用程序的更新? (比如说,应用 A 向一个特征写入一个值,应用 B 的委托是否也收到了 [– peripheral:didWriteValueForCharacteristic:error:] 消息?)
是否有任何优雅的方法可以支持将事件处理代码拆分为多个类?
【问题讨论】:
【参考方案1】:CoreBluetooth: How to design code for many characteristics (30 - 40)? 的 answer 有一些设计技巧,在这里可能会有所帮助。简而言之,创建一个可以是CBPeripheralDelegate
的中介类,并支持多个特征类注册他们想要的任何特征。
【讨论】:
以上是关于同一设备的多个 CBPeripheral的主要内容,如果未能解决你的问题,请参考以下文章
iOS 应用的 AppStore 版本及其多个 Testflight 构建在同一设备上
如何使用同一个 GPU 设备在 SLURM 中定义多个 gres 资源?