Можно ли использовать 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 доза не работает вообще.

Intereting Posts
Имитировать меню ActionBar с ImageButton Как загрузить файл с сервисом в фоновом режиме? Android OverlayItem.setMarker (): изменение маркера для одного элемента Parse.com получает значение с запросом Грейд-зависимости: скомпилировать проект по относительному пути Остановите или освободите MediaPlayer, пока он все еще готовится Как центрировать кнопки на экране по горизонтали и вертикали плюс равноотстоящие друг от друга? Проект библиотеки Android как файл jar для распространения, например Google Analytics Как получить значения атрибутов темы Альтернатива OpenSL ES на Android Как группировать элементы из базы данных и отображать их – Android Хранить AsyncTask во время вращения, но не удалять активность Инициализация приложения очень медленная: инициализация FirebaseApp неудачна Текстовые перестановки, несмотря на -fPIC? Невозможно установить приложение на HoneyComb 3.2 – оно дает ошибку INSTALL_PARSE_FAILED_NOT_APK