У меня есть сервис с несколькими характеристиками, которые рекламируются с помощью Bluetooth LE. Я не хочу начинать отправку данных в центральный, пока он не подписал все четыре характеристики, но я не могу найти способ узнать, какие характеристики были подписаны. Это явно заставляет меня вручную отслеживать, какие характеристики были подписаны до сих пор, но, если возможно, я бы хотел этого избежать. Есть ли способ перечислить характеристики, подписанные данным центральным?Зная, какие характеристики данный центральный подписались на CoreBluetooth
ответ
В CBMutableCharacteristic есть свойство subscribedCentrals
. Вы можете использовать его для своих целей - каждый раз, когда центральная подписка подписывается на характеристику, вы можете проверить, уже ли она подчинена другим характеристикам (возможно, вы где-то храните список из CBMutableCharacteristic
экземпляров, чтобы вы могли перебирать их).
Как я уже упоминал в своем комментарии, это может быть не очень хорошая идея, если вы хотите быть хорошим гражданином мира Bluetooth Low Energy. Разработчик центрального подключения к периферийной периферии может быть сбит с толку, когда он или она не получает уведомлений об обновлениях с характеристики, на которую он или она подписались.
Как только вы полностью контролируете центральный (например, вы разрабатываете как периферийные, так и центральные, которые используются только в вашем приложении), это не проблема. В противном случае я бы предложил пересмотреть свой подход, возможно, есть еще одно решение, которое будет работать для вас и других разработчиков, которые хотели бы использовать вашу службу BLE.
Я даже не знаю, как я это пропустил! Я понимаю, что этот подход не соответствует спецификации или цели BLE, но в этом конкретном случае это имеет смысл, и это то, что мне нужно. Спасибо за ваши замечания! –
- 1. Swift, CoreBluetooth: услуги и характеристики
- 2. Центральный менеджер CoreBluetooth не обнаружил несколько устройств
- 3. Центральный сервер и периферийный клиент CoreBluetooth
- 4. Создание статической характеристики с быстрым и CoreBluetooth
- 5. corebluetooth: iOS обнаруживает характеристики Я не прошу
- 6. CoreBluetooth установил центральный делегат на другой контроллер представления
- 7. Обновление динамической длинной характеристики CoreBluetooth на периферийном устройстве
- 8. CoreBluetooth: Как может периферийный менеджер узнать, что центральный получил указание?
- 9. Зная, какие шрифты установлены
- 10. CoreBlueTooth: получение ошибок, даже если данные записываются в записываемые характеристики
- 11. CoreBluetooth: не удалось обнаружить характеристики для обнаруженных периферийных устройств
- 12. iOS - нужно понять, какие устройства работают с CoreBluetooth
- 13. Какие браузеры поддерживают XBAP на данный момент?
- 14. CoreBluetooth Framework: Как получить подключенные устройства, не зная идентификаторы служб?
- 15. CoreBluetooth выпуск на Mac
- 16. CoreBluetooth: Попытка записи на устройство
- 17. В RSpec, какие характеристики запроса должны тестироваться?
- 18. Использование CoreBluetooth в iOS
- 19. Уведомления о получении CoreBluetooth в CBPeripheralManager
- 20. Изменение имени устройства CoreBluetooth
- 21. CoreBluetooth - запрос не поддерживается. Зачем?
- 22. Зная, какие шифры используются вашими пользователями
- 23. Зная, какие точки принадлежат кластеру в DBSCAN
- 24. CoreBluetooth Central -> Периферийные устройства
- 25. Зная, какие объекты для кластераExport заранее
- 26. CoreBluetooth «willRestoreState» - что именно нужно делать там?
- 27. Зная, какие поля обновляются из ActiveRecord
- 28. iOS CoreBluetooth маловероятная ошибка
- 29. зная, какие элементы списка отображаются в настоящее время на экране
- 30. Как узнать, какие ветви Git влияют на данный подкаталог?
Я думаю, что центральный (разумно) ожидал, что он получит данные от каждой характеристики, как только он ее подпишет. Я не уверен, что поведение, которое вы пытаетесь реализовать, соответствует спецификации Bluetooth Low Energy. –
Я думаю, это правда. Тем не менее мне нужно это поведение. Наверное, я буду следить за подписанными характеристиками вручную. –