Android NFC: могу ли я осуществлять двунаправленный обмен сообщениями?

Спецификация протокола отправки NDEF для Android от февраля 2011 г. говорится: Это позволяет осуществлять двунаправленный обмен NDEF между устройствами NPP.

Сегодня 2015 год, и я хочу простой обмен сообщениями между двумя устройствами:

 Device 1         Device 2

"Hello"    ---> 
           <--- "Welcome"
"Goodbye"  ---> 
           <--- "Farewell"

Другими словами, я хочу, чтобы получатель отправил сообщение подтверждения.

Как отправить информацию в обоих направлениях и настроить взаимодействие двух устройств через NFC?

Аналогичный вопрос от 2011 года: Двунаправленный Android Beam


person 18446744073709551615    schedule 13.11.2015    source источник
comment
Это невозможно. NFC полудуплексный. 1 устройство работает как активное, производя активное радиочастотное излучение, а другое как пассивное. В 1 касание или касание вы можете отправить только 1 сообщение сказать «Привет».   -  person    schedule 13.11.2015
comment
@VivekKN это неправда. Возможна двусторонняя связь. Луч Android ограничен одним сообщением обратного вызова. Поместите 1 устройство в режим чтения/записи, а другое — в режим эмуляции карты, чтобы обеспечить двунаправленную связь.   -  person S.Pols    schedule 13.11.2015
comment
@ S.Pols Да, вот что я говорю. Режим чтения/записи — это не что иное, как пассивный режим, а режим эмуляции карты — активный режим (где вы производите RF). Таким образом, активное устройство отправляет приветствие, а пассивное устройство получает его и отображает приветствие, но не может отправить приветствие на активное устройство.   -  person    schedule 13.11.2015
comment
@VivekKN также NFC не является двунаправленным, протокол LLCP, на котором основана одноранговая связь, заботится об этом, опрашивая пассивное устройство. Так что на практике общение фактически является двунаправленным. Однако Android не предоставляет полный доступ к LLCP для приложений, поэтому у вас остаются NPP и SNEP. И эти протоколы снова превращают прекрасный LLCP в однонаправленный транспорт.   -  person Nils Pipenbrinck    schedule 15.11.2015


Ответы (2)


Слова для поиска в Google: APDU и эмуляция карты.

Рабочий код можно найти здесь: https://github.com/grundid/host-card-emulation-sample

и соответствующая статья в блоге находится здесь: http://blog.opendatalab.de/hack/2013/11/07/android-host-card-emulation-with-acr122/

Это работает для 2 телефонов: запустите приложение через Eclipse на обоих телефонах, отключите активность на одном (только одном!) из них, а затем держите два телефона спиной к спине.

person 18446744073709551615    schedule 16.11.2015

Он будет двунаправленным:

https://www.nfcw.com/2020/05/19/366575/nfc-forum-formally-adopts-tnep-standard-for-bidirectional-nfc-data-exchange/

person Chris Hallman    schedule 25.08.2020