2014-12-04 3 views
3

Я пытаюсь использовать NFC для подключения двух устройств Android BLE. Я следил за последними спецификациями, выпущенными на NFC Forum & BT SIG, называется Bluetooth Secure Simple Pairing Using NFC, и меня интересует статическая передача обслуживания. Это означает, что я должен написать NDEF-сообщение в теге NFC (отформатированном в соответствии с указанными выше спецификациями) с одним устройством, затем другой будет читать этот тег и сохранить информацию для начала спаривания BLE. Я использую Android 4.4.2. и этот подход отлично работает с Bluetooth, без необходимости иметь конкретное приложение для управления передачей обслуживания, Android делает работу!BLE-соединение NFC на Android

Но с BLE этот подход не работает. Я думаю, проблема связана с типом MIME, который я должен был бы написать в сообщении NDEF. Для Bluetooth - application/vnd.bluetooth.ep.oob, а для BLE - application/vnd.bluetooth.le.oob. Когда я нажимаю устройство/тег, Android обнаруживает, что есть новый тег с BLE MIME-типом, но не выполняет никаких действий, просто показывает мне экран «Новый тег собран», как будто это был неизвестный MIME-тип. Я заметил, что спецификации NFC Forum были выпущены в 2014-01-09, а в Compatibility document for Android 4.4 нет ссылок на передачу обслуживания BLE, просто Bluetooth.

Кто-нибудь знает, поддерживается ли BLE-соединение NFC и работает на Android 4.4? А на Android 5?

ответ

2

Мне удалось проверить передачу NFC/BLE на Nexus 6 под управлением Android 5, а MIME-тип application/vnd.bluetooth.le.oob был признан! Поэтому предел находится в версии Android ...

+0

Не могли бы вы поделиться тем, как вы это сделали? – shreyashirday

+1

@shreyashirday Я просто создал NdefRecord функцией [createMime \ (mimeType, mimeData \)] (http://developer.android.com/reference/android/nfc/NdefRecord.html), передав строку 'application/vnd. bluetooth.le.oob' как mimeType. MimeData (полезная нагрузка) зависит от некоторых параметров, и вы можете найти более подробную информацию в вышеупомянутом документе [\ (Bluetooth Secure Simple Pairing с помощью NFC \)] (http://members.nfc-forum.org/apps/group_public/download. PHP/18688/NFCForum-AD-BTSSP_1_1.pdf). На стр. 32 также приведен пример (содержимое payolad начинается с поля адреса LE). – Mirky89

+0

@shreyashirday Однако единственными обязательными полями полезной нагрузки являются MAC-адрес BLE и роль BLE узла ... Затем вы можете передать NdeRecord в [NdefMessage] (http://developer.android.com/reference/android/nfc /NdefMessage.html), получая NdefMessage, записываемый в тег. Таким образом, нажав так отформатированный тег на устройство Android 5+, сообщение NDEF автоматически распознается как запрос передачи обслуживания BLE. – Mirky89

0

Если вы хотите прочитать характеристику, вам необходимо использовать метод чтения этого свойства. Образец, заданный с SDK 4.3, работает хорошо. Кроме того, проблема подключения существует во всех других устройствах, кроме Samsung.