Обнаружение близости с помощью Bluetooth LE Proximity Profile Android

Определение проблемы. Я пытался использовать BLE proximity profile для Bluetooth LE на Android. Некоторые устройства, например планшет Google Nexus нового поколения с Android 4.3, поддерживают BLE и могут работать как central устройство. Я прочитал официальную документацию Android по Bluetooth LE, но они не Похоже, что это не поддерживает. Есть ли у них обходной путь для реализации нашего собственного профиля близости?

Вопросы, которые касаются профиля близости на Android, но не помогают

Любая помощь приветствуется. Спасибо.


person Shobhit Puri    schedule 28.10.2013    source источник
comment
Профиль Proximity определяет две роли: Proximity Monitor и Proximity Reporter. Proximity Reporter должен быть сервером GATT. Proximity Monitor должен быть клиентом GATT. Таким образом, устройство Android, которое может выполнять только центральную роль, может быть Proximity Monitor, но не Proximity Reporter.   -  person Ash Eldritch    schedule 08.01.2014


Ответы (3)


Июнь 2014 г .:

Спасибо всем за ответы. Просто для обновления, с июня 2014 года в предварительной версии Android L Developer предлагается периферийный режим BLE. Таким образом, теперь устройства Android могут выступать как в периферийной, так и в центральной роли. Надеюсь увидеть это в Android L официальном выпуске. Цитата из их блога Новое в Android: L Developer Preview и Google Play Services 5.0:

L Developer Preview позволяет изучить многие новые функции и возможности следующей версии Android и предлагает все необходимое для начала разработки и тестирования на новой платформе. Вот несколько важных моментов для разработчиков:

Периферийный режим BLE - устройства Android теперь могут работать в периферийном режиме Bluetooth с низким энергопотреблением (BLE). Приложения могут использовать эту возможность для трансляции своего присутствия на соседние устройства - например, теперь вы можете создавать приложения, которые позволяют устройству работать в качестве шагомера или монитора состояния и передавать данные на другое устройство BLE.

Обновление от 16 октября 2014 г .:

Его сейчас нет! Просмотрите страницу изменения беспроводной связи Android 5.0.

Обновление от 8 декабря 2014 г .:

Плохая новость заключается в том, что периферийный режим BLE будет работать только на новых устройствах Android (согласно дате), а именно на Nexus 6 и Nexus 9. Он не будет работать на Nexus 4 / Nexus 5 / nexus 7 / nexus 10, даже если вы обновите его до Android 5.0. Вы можете прочитать комментарий автора один из менеджеров проектов Android на режиме рекламы BLE не работает билет. Он говорит:

Мы представили периферийный режим BLE в Android 5.0 Lollipop. Nexus 6 и Nexus 9 - первые два производственных устройства Nexus, поддерживающих периферийный режим BLE. Из-за зависимости от аппаратного набора микросхем старые устройства Nexus (4/5/7) не будут иметь доступа к этой функции на Lollipop.

Спасибо Робу Андерсону за информацию.

person Shobhit Puri    schedule 29.08.2014
comment
Но насколько я знаю, он работает только на Nexus 6 и Nexus 9. Я попробовал его на своем Nexus 4 (Android 5.0), и он не работает. - person Rob Anderson; 08.12.2014
comment
AFAIK Nexus 4 поддерживает это. См. Список устройств здесь: bluetooth.com/Pages/Bluetooth-Smart -Devices-List.aspx - person Shobhit Puri; 08.12.2014
comment
Извините, но я говорю о периферийном режиме! Nexus 4 его не поддерживает! Я написал следующий код, чтобы проверить это: github.com/hennroja/AndroidBLEPeripheralTest - person Rob Anderson; 09.12.2014
comment
@RobAnderson Вы правы. Я обновил свой ответ. Комментарии одного из менеджеров проекта Android к заявке, которую я упомянул в ответе, подтверждают это. - person Shobhit Puri; 09.12.2014

Чтобы подробнее рассказать о ответе shubhams:

К сожалению, устройства Android не могут выступать в качестве периферийных устройств. Он может создавать серверы, сервисы и характеристики GATT, но нет возможности делать рекламу. (https://stackoverflow.com/a/18020153/3061383)

Поскольку Android (пока) не поддерживает рекламу, никакое другое устройство BLE не может инициировать соединение с устройством Android. На данный момент устройство Android должно инициировать соединение.

person Simon Wiesmann    schedule 21.03.2014

К сожалению, андроид может действовать только как центральный, а не периферийный. Таким образом, пользовательское профилирование на данный момент невозможно. Вместо этого вы можете использовать профиль, предоставляемый gatt.

Например: профиль монитора температуры. Вместо этого вы можете настроить на iPhone индивидуальные услуги и характеристики и заставить его работать как маяк.

Кроме того, если вы используете аппаратное устройство Estimote и других компаний, вы можете ответить на данные с устройства Android, то есть службы и характеристики имеют такие свойства, как чтение, запись и уведомление. Но когда вы делаете iPhone как Beacon, вы не сможете получить значение с устройства Android.

person shubham jain    schedule 20.03.2014