Можно ли использовать Android Beam между устройством Android и другим устройством NFC?

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

  • На переднем плане NDEF нажатие для уровня API с 10 по 13
  • Через Android Beam из уровня API 14

Я думаю, что могу сделать то, что хочу, с помощью первого решения, но я хотел бы узнать, можно ли использовать Android Beam между Android-устройством и не-андроидным устройством?

Спасибо за вашу помощь,

Ромен

Хотя функция вызывает вызовы между API 10-13 и APi 14, фактический базовый протокол почти такой же. В обоих случаях одноранговая связь NFC выполняется с использованием LLCP. В API 10-13 используется фактический протокол передачи данных – АЭС. В API 14 к этому добавляется SNEP, но он возвращается на АЭС, когда другое устройство не поддерживает SNEP.

Поэтому, когда ваше устройство, отличное от Android, реализует SNEP и / или NPP поверх LLCP, оно может передавать данные и получать данные с устройства Android NFC. Существует несколько реализаций SNEP и LLCP для устройств чтения карт, например, https://github.com/grundid/nfctools .

Я посмотрел на это для проекта колледжа.

Во-первых, пожалуйста, не то, что есть 3 режима работы NFC {Считывание / запись карт, эмуляция тегов и P2P-связь}. Android поддерживает чтение / запись карт и P2P-связь.

Для связи с устройством без Android через P2P достаточно сложно, так как вы должны использовать NPP (Ndef Push Protocol), построенный на LLCP (протокол управления логической связью). Платформа для не-андроид должна будет использовать LLCP для связи. Я не уверен, что это уже сделано для NFC. Информацию о реализации НПП / LLCP можно найти здесь

Следующим подходом является использование режима чтения / записи карт для связи с не Android-устройством, работающим в режиме эмуляции карты. Таким образом вы можете отправить APDU в эмулированный тег для отправки и получения данных. Я сделал этот подход в обратном порядке, используя BlackBerry для моего проекта. BlackBerry поддерживает эмуляцию карт, поэтому я использовал Android-устройство (ACR122U) для отправки APDU на BlackBerry.

Хотя первый подход (P2P), очевидно, является идеальным способом, второй можно было бы проще реализовать. В любом случае, это было хорошо для меня в моем приложении, я создал систему, которая принимает платежи через NFC.

Обратите внимание, что ACR122U не имеет хорошей поддержки эмуляции тегов NFC, поэтому он не подходит для вас. Веб- сайт LibNFC – отличное начало для поиска устройства, поддерживающего эмуляцию тегов.

Теперь я закончил проект, и он отлично работает с использованием устройства ACR122U. Если вам нужна помощь по второму подходу, спросите пожалуйста.

См. Belows Issue 28014: Включите реальную связь NFC p2p и возможность отключения интерфейса «Touch to Beam»
https://code.google.com/p/android/issues/detail?id=28014 Android Peer to Peer доза не работает вообще.