У меня есть небольшой аппарат с модулем BLE, который взаимодействует с устройством iOS.
Я хотел бы выполнить обнаружение с помощью iBeacon (то есть с использованием рекламных пакетов iBeacon) и, очевидно, подключение (и обмен данными) с помощью CoreBluetooth, но есть некоторые проблемы.
Прежде чем описывать проблемы, я должен сказать вам, что мне нужно предоставить эту информацию на этапе обнаружения:
Серийный номер (нужен для внутренних целей) - 6 символов и 10 цифр.
«Аппаратная версия» для указания типа продукта (каждый продукт использует другой протокол).
Проблема, с которой я сталкиваюсь, в основном заключается в том, как выполнить фазу обнаружения, а затем подключиться к конкретному обнаруженному объекту:
О. В пакете iBeacon adv я должен использовать поле UUID для серийного номера и поле основного/дополнительного номера для версии аппаратного обеспечения, но если я это сделаю, устройства в основном не будут обнаруживаться (iBeacon SDK для iOS должен знать UUID, чтобы ищите перед началом фазы мониторинга, поэтому она не может быть разной для каждого устройства).
B. В iOS функции iBeacon доступны через библиотеки CoreLocation, вместо этого стандартные функции BLE доступны через CoreBluetooth. Если я использую рекламный пакет iBeacon, объекты, обнаруженные библиотеками CoreBluetooth, не видят никакой информации о пакете (поэтому проблема заключается в следующем: «Как узнать, какой объект с серийным номером XYZ?»).