Android: BLE без "периферийной" роли?
У меня есть простая задача написать приложение, которое соединяет и добавляет связь между двумя устройствами Android. И что я узнал? Именно Android BLE не поддерживают "периферийную" роль.
1) Значит, это означает, что я не могу подключить одно "центральное" устройство Android к другому "периферийному" устройству Android по специальному UUID? Это правильно?
2) Если не удается подключить 2 устройства Android через BLE, зачем вообще нужен BLE на Android? Подключить Android с iOS?
3) Как устройство Android будет работать с часами?
1 ответ
1) Android 5 (Lollipop) получил поддержку API высокого уровня для роли Периферия, но если драйвер HW низкого уровня не поддерживает его, или получил неразрешенные ошибки в прошивке, или если Продавец слишком дешев, чтобы выполнить (пере) сертификацию для роли Периферия, тогда Google дал способ поставщика настроить периферийную роль BLE с 0 (нулевыми) ресурсами рекламодателя. Он по-прежнему будет иметь API на высоком уровне, но просто скажет, что ресурсов для рекламы больше нет. В этом случае НЕТ, вы не можете соединить эту модель Android Vendor с другой через BLE. Что вы имеете в виду под "специальным UUID", мне не ясно. Каждый может сгенерировать 128-битный UUID Сервиса и использовать его, но только те из них, которые имеют Периферийную роль, могут рекламировать эту услугу для устройств с центральной ролью BLE для подключения. Центральное ролевое устройство BLE может фактически иметь службы для периферийного ролевого устройства BLE, обнаруживаемого после подключения центрального ролевого устройства к периферийному ролевому устройству. Это видно не очень часто.
2) Центральная роль BLE необходима для подключения к часам, мониторам сердечного ритма и соответствующим устройствам, которые поддерживают периферийный режим BLE и, следовательно, рекламу (с возможностью подключения). Это хороший бизнес-пример, но он не распространяется на быструю телефонную связь Search & Discover Phone <-> Phone.
3) Android 4.3 / 4.4 / 5.0 (Lollipop) будет хорошо работать с часами, поскольку часы играют роль периферийного устройства, и Android может сканировать их, подключать и сохранять это соединение.
Да, вы можете создать приложение на телефоне / планшете iOS с периферийной ролью, искать, подключать и обнаруживать устройства с Android 4.3/4.4/5.0 (Lollipop). Эти двое могут общаться. Да, вы можете создать приложение на Nexus 9 (и, надеюсь, на Nexus 6), которое использует периферийную роль для обнаружения на iOS/Android 4.3/4.4/5.0 (Lollipop).