Я пытаюсь реализовать поведение, подобное Android-Beam, между смартфоном Android и хостом Linux. Смартфон Android (Galaxy Note 3, Android 4.4.2) прикасается к ключу NFC, подключенному к хосту Linux, и обменивается данными оператора Bluetooth через NFC, чтобы затем подключиться к ключу Bluetooth, также подключенному к хосту Linux.
Теперь проблема в том, что Android-смартфон всегда спрашивает пользователя (меня), действительно ли я хочу выполнить сопряжение с Bluetooth-ключом. В Android Beam между двумя мобильными телефонами Android это подтверждение пользователя не отображается, пользователю нужно только щелкнуть содержимое (то есть изображение), чтобы отправить его (и это поведение, которое я пытаюсь получить). Я использую «nfctool» для перехвата входящего сообщения запроса рукопожатия с мобильного устройства Android (см. http://pastebin.com/Dr0D0nqn ). Согласно документу «Безопасное простое соединение Bluetooth с использованием NFC» форума NFC (см. ://members.nfc-forum.org/resources/AppDocs/NFCForum_AD_BTSSP_1_0.pdf стр. 19) этот запрос рукопожатия должен содержать простой хэш сопряжения и простой рандомизатор сопряжения, которые отсутствуют в запросе рукопожатия Android. .
Итак, мои вопросы:
- Во-первых, использует ли Android Beam Secure Simple Pairing с OOB или какой-то другой механизм? Почему Android Beam между двумя устройствами Android работает без подтверждения сопряжения?
- Если он использует SSP, почему хэш SSP и рандомизатор отсутствуют в сообщении HR? Может ли это быть причиной того, что для моего сопряжения требуется подтверждение пользователя?
- Если Android использует другой механизм, как примерно выглядят сообщения HR? Используют ли они имя специального типа (отличное от «application/vnd.bluetooth.ep.oob») или что-то еще в своем запросе рукопожатия, что позволяет обойти подтверждение пользователя о сопряжении BT?
- Есть ли какая-либо техническая документация (я пока не нашел) для Android Beam? Руководство по NFC для разработчиков Android ( http://developer.android.com/guide/topics/connectivity/nfc/nfc.html ) не очень помогает в отношении Android Beam.
Любая помощь высоко ценится :)