2012-05-30 3 views
10

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

  • Via переднего план ЦНКА толкая на уровень API 10 до 13
  • Via Android Beam от уровня API 14

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

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

Romain

ответ

11

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

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

+0

легко понять и очень полно, спасибо! –

4

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

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

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

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

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

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

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

+0

большое спасибо, в вашем ответе есть много информации. –

+0

@conor По словам Тебя, я могу создать связь между моим Android-устройством и BlackBerry-устройством, только требуемая вещь, которую Оба должны поддерживать NFC Technology. – Herry

Смежные вопросы