我的服务有几个特点,正在使用蓝牙LE进行广告宣传。我不想开始向中心发送数据,直到它已经订阅了所有四个特征,但我似乎无法找到一种方法来了解哪些特性已被订阅。这显然迫使我手动跟踪到目前为止已订阅的特征,但是,如果可能的话,我想避免这种情况。有没有办法列出特定中心订阅的特征?
答案 0 :(得分:0)
CBMutableCharacteristic中有一个名为subscribedCentrals
的媒体资源。你可以将它用于你的目的 - 每次中心订阅一个特性时,你可以检查它是否已经被描述为其他特征(可能你在某处存储了CBMutableCharacteristic
个实例的列表,所以你可以迭代它们)
正如我之前在评论中提到的,如果你想成为蓝牙低能耗世界的好公民,那可能不是一个好主意。如果他或她没有从他或她订阅的特征中获得更新通知,那么连接到旅游外围设备的中央开发人员可能会感到困惑。
只要您完全控制中央(例如,您同时开发仅在您的应用中使用的外围设备和中央设备),这不是问题。否则我会建议重新考虑你的方法,也许还有另一个解决方案,对你和其他想要使用你的BLE服务的开发者都有用。