2012-05-30 11 views
10

Chciałbym wdrożyć komunikację NFC między moją aplikacją na Androida a kioskiem z obsługą NFC. Czytałem documentation i rozumiem pchania danych może odbywać się na 2 sposoby:Czy można używać Android Beam pomiędzy urządzeniem z Androidem a innym urządzeniem NFC?

  • Via planie NDEF naciska na poziomie API 10 do 13
  • Via Android Beam z poziomu API 14

Myślę, że mogę zrobić to, co chcę, za pomocą pierwszego rozwiązania, ale chciałbym wiedzieć, czy możliwe jest korzystanie z Android Beam pomiędzy urządzeniem z Androidem a urządzeniem innym niż android?

Dzięki za pomoc,

Romain

Odpowiedz

11

Mimo że funkcje między API 10 a 13 i APi 14 różnią się, rzeczywisty protokół bazowy jest prawie taki sam. W obu przypadkach komunikacja NFC peer-to-peer odbywa się za pomocą LLCP. W API 10 do 13, rzeczywistym wykorzystywanym protokołem przesyłania danych jest NPP. W API 14, SNEP jest do tego dodawany, ale wróci do NPP, gdy inne urządzenie nie obsługuje SNEP.

Więc gdy urządzenie nie realizuje Snep Android i/lub NPP nad LLCP, może przesyłać dane i odbierać dane z urządzenia Android NFC. Istnieje kilka implementacji SNEP i LLCP dla czytników kart, patrz na przykład https://github.com/grundid/nfctools.

+0

łatwe do zrozumienia i bardzo kompletne, dziękuję! –

4

Zajrzałem do tego dla projektu College.

Po pierwsze, prosimy pamiętać, że istnieją 3 tryby działania NFC {Odczyt/zapis karty, emulacja znacznika i komunikacja P2P}. Android obsługuje funkcję odczytu/zapisu kart i komunikacji P2P.

Aby komunikować się z braku urządzenia z systemem Android poprzez P2P jest dość skomplikowana, ponieważ należy użyć NPP (Ndef push Protocol) zbudowany na LLCP (logiczne Protokół kontrolny połączeń). Twoja platforma inna niż Android będzie musiała wdrożyć LLCP, aby móc się komunikować. Nie jestem pewien, czy zrobiono to dla NFC. Informacje na temat implementacji NPP/LLCP można znaleźć here

Następnym podejściem jest użycie trybu odczytu/zapisu karty w celu komunikacji z urządzeniem innym niż Android działającym w trybie emulacji karty. W ten sposób możesz wysłać APDU do emulowanego znacznika, aby wysyłać i odbierać dane. Zrobiłem to podejście na odwrót, używając BlackBerry do mojego projektu. BlackBerry obsługuje emulację kart, więc użyłem urządzenia innego niż Android (ACR122U), aby wysłać APDU do BlackBerry.

Podczas gdy pierwsze podejście (P2P) jest oczywiście idealną drogą, drugie może być łatwiejsze do wdrożenia. W mojej aplikacji działało to całkiem dobrze, stworzyłem system, który akceptuje płatności za pośrednictwem NFC.

Należy pamiętać, że ACR122U nie ma dobrej obsługi emulacji tagów NFC, więc nie jest odpowiedni dla ciebie. Witryna LibNFC to świetny początek, aby znaleźć urządzenie obsługujące emulację znaczników.

Jestem już gotowy projekt i działa wspaniale przy użyciu urządzenia ACR122U. Jeśli potrzebujesz pomocy w drugim podejściu, zapytaj.

+0

wielkie dzięki, w twojej odpowiedzi jest dużo informacji. –

+0

@conor Zgodnie z Tobą, mogę utworzyć Komunikację Między moim urządzeniem z Androidem a Urządzeniem Blackberry wymaganą tylko Oba muszą obsługiwać Technologię NFC. – Herry

Powiązane problemy