2012-05-30 14 views
10

Vorrei implementare una comunicazione NFC tra la mia app Android e un chiosco abilitato NFC. Ho letto l'documentation e capisco i dati che spingono può essere fatto in 2 modi:È possibile utilizzare Android Beam tra un dispositivo Android e un altro dispositivo NFC?

  • Via piano NDEF spingendo per livello di API 10-13
  • Via Android Beam dal livello di API 14

Penso di poter fare ciò che voglio attraverso la prima soluzione, ma mi piacerebbe sapere se è possibile utilizzare Android Beam tra un dispositivo Android e un dispositivo non Android?

Grazie per il vostro aiuto,

Romain

risposta

11

Sebbene la chiamata tra le API 10-13 e APi 14 differisca, il protocollo sottostante reale è quasi lo stesso. In entrambi i casi, la comunicazione peer-to-peer NFC viene effettuata utilizzando LLCP. Nelle API da 10 a 13, il protocollo di trasferimento dati utilizzato è NPP. Nell'API 14, SNEP viene aggiunto a questo, ma tornerà all'NPP quando l'altro dispositivo non supporta SNEP.

Così quando il dispositivo non Android implementa SNEP e/o NPP su LLCP, può trasferire dati e ricevere dati da un dispositivo Android NFC. Esistono diverse implementazioni di SNEP e LLCP per i dispositivi di lettura di carte, vedi ad esempio https://github.com/grundid/nfctools.

+0

facile da capire e molto completo, grazie! –

4

ho guardato dentro a questo per un progetto universitario.

Innanzitutto, non ci sono 3 modalità di funzionamento NFC {lettura/scrittura scheda, emulazione tag e comunicazione P2P}. Android supporta la lettura/scrittura di schede e la comunicazione P2P.

Per comunicare con un dispositivo non Android tramite P2P è piuttosto complesso in quanto è necessario utilizzare il protocollo NPP (Ndef Push Protocol) costruito su LLCP (protocollo di controllo del collegamento logico). La tua piattaforma non Android dovrà implementare la LLCP per essere in grado di comunicare. Non sono sicuro se questo è stato fatto per NFC ancora. Informazioni sull'implementazione NPP/LLCP possono essere trovate here

Il prossimo approccio consiste nell'utilizzare la modalità di lettura/scrittura delle schede per comunicare con il dispositivo non Android in esecuzione in modalità emulazione schede. In questo modo è possibile inviare APDU al tag emulato per inviare e ricevere dati. Ho fatto questo approccio al contrario utilizzando BlackBerry per il mio progetto. BlackBerry supporta l'emulazione delle schede, quindi ho utilizzato il dispositivo non Android (ACR122U) per inviare gli APDU al BlackBerry.

Mentre il primo approccio (P2P) è ovviamente il modo ideale per andare, il secondo potrebbe essere più facile da implementare. Ha funzionato abbastanza bene per me nella mia applicazione in ogni caso, ho creato un sistema che accetta pagamenti tramite NFC.

Si prega di notare che l'ACR122U non ha un buon supporto per l'emulazione di tag NFC, quindi non è adatto a voi. Il sito web LibNFC rappresenta un ottimo inizio per trovare un dispositivo che supporti l'emulazione dei tag.

Ora ho completato il progetto e funziona perfettamente con il dispositivo ACR122U. Se hai bisogno di aiuto per il secondo approccio, chiedi pure.

+0

molte grazie, ci sono molte informazioni nella tua risposta. –

+0

@conor Secondo te, posso creare la comunicazione tra il mio dispositivo Android e il dispositivo BlackBerry solo cosa necessaria che entrambi devono supportare la tecnologia NFC. – Herry

Problemi correlati