Android NFC: протокол SNEP и ответ P2P - PullRequest
6 голосов
/ 04 января 2012

Я пытаюсь реализовать P2P-связь между двумя телефонами Android (один из них будет заменен независимым устройством в конце).Я видел, что Android 4 поддерживает SNEP, который публикуется форумом NFC и должен быть доступен на устройствах без Android.

Я следую инструкции Google для NFC P2P (http://developer.android.com/guide/topics/nfc/nfc.html#p2p), и я могу отправить некоторую информациюс одного телефона на другой, но у меня есть несколько вопросов:

  1. Android Beam - это просто название для NFC или это протокол Android, работающий через SNEP / NPP? Если это протокол, какделать NFC P2P без луча?
  2. Как настроить использование SNEP?
  3. Как отправить ответ на другое устройство при инициализации соединения (первое сообщение получено)?

Спасибо за помощь !!!

Ответы [ 3 ]

2 голосов
/ 10 января 2012

Android Beam - это просто имя, правильно.Устройства используют SNEP по умолчанию, если это не удается, он пробует NPP.Вы не можете отправить ответ от принимающего устройства отправителю.Вы можете использовать только обратный вызов, чтобы получить уведомление об успешном нажатии:

http://developer.android.com/reference/android/nfc/NfcAdapter.OnNdefPushCompleteCallback.html

0 голосов
/ 26 сентября 2014

Чтобы дать более четкое объяснение:

Android Beam - это просто название для NFC или протокол Android, работающий над SNEP / NPP?Если это протокол, как сделать NFC P2P без Beam?

Луч Android - это особенность ОС Android.Это высокоуровневый механизм обмена сообщениями NDEF поверх SNEP / NPP.Пока одноранговый режим (на Android) доступен только через Android Beam, который нельзя использовать для двунаправленной связи.

Как настроить использование SNEP?

Если вы хотите использовать SNEP на Android, (я думаю) единственный способ - это запрограммировать собственную реализацию SNEP поверх протокола ISO-DEP.Поскольку SNEP находится на вершине LLCP, вам также необходимо создать собственную реализацию LLCP.Это не просто ..

Как отправить ответ на другое устройство при инициализации соединения (первое сообщение получено)

С SNEP вы не можете.Как сказал @robertly, создать сообщение обратного вызова возможно только.Если вы хотите истинную двустороннюю связь, используйте режимы чтения / записи и эмуляции карт.

0 голосов
/ 14 сентября 2012

Кодовая страница Google ismb-snep-java объясняет связь и передачу данных с использованием протокола SNEP, и я проверил его, и он работает.После поиска в PDF-файлах как из ACR, так и из Android, я считаю, что вам просто нужно сделать несколько твиков, чтобы заставить его работать так, как вы хотите.

...