2013-07-23 11 views
6

Sto lavorando con un lettore contactless per comunicare con il mio dispositivo Android.Come funziona il polling Android per dispositivi NFC

Ho notato che in qualsiasi momento non riesco a collegarmi al mio dispositivo Android tramite P2P. Se desidero connettermi per avviare un trasferimento Android Beam, devo continuamente provare a connettermi al dispositivo più volte per un periodo di un secondo.

Un dispositivo NFC Android è in grado di rilevare schede contactless, target P2P NFC e iniziatori NFC P2P, ovvero 3 diverse modalità. Sto iniziando a pensare che ci sia una sorta di sondaggio in corso dietro le quinte che commuta tra le tre modalità molto rapidamente.

Ciò significa che in qualsiasi momento in cui si tenta di connettersi al telefono, potrebbe essere o non essere nella modalità corretta e avrà esito negativo. Questo è il motivo per cui ho bisogno di tentare più connessioni.

Ho cercato la fonte Android per cercare di capirlo senza alcuna fortuna. here è il file più promettente che abbia mai visto ma non ha ancora senso.

La mia domanda è: in che modo Android rileva più modalità NFC, utilizza un algoritmo di commutazione e, in caso affermativo, quali sono le specifiche dell'algoritmo?

Grazie.

risposta

5

Sto cominciando a pensare che ci sia qualche tipo di polling in corso dietro le quinte che passa tra le tre modalità molto rapidamente.

Esattamente questo sta succedendo. Le diverse tecnologie vengono multiplexate nel tempo. È molto più di tre modalità. Tipicamente un dispositivo NFC interrogherà per:

  • Reader ISO14443 Un
  • Reader ISO14443 B
  • lettore FeliCa (aka tag di tipo 3)
  • Reader ISO15693
  • emulazione scheda ISO14443 Un
  • carta Emulazione ISO14443 B
  • Emulazione scheda Felica

La modalità peer-to-peer utilizza Reader A, Reader FeliCa come iniziatore. Anche l'emulazione di carte A e l'emulazione di carte Felica sono utilizzate come tecnologia di modalità Target peer-to-peer.

Il tempo esatto del sondaggio non è pubblico e non si troverà molto a riguardo nel codice sorgente. Questo è gestito internamente dal chip NFC.

+0

Ottima risposta per confermare i miei sospetti, grazie. Ti dispiace che ti chieda come lo sai. Hai qualche link di riferimento su cui potrei fare una scansione? Grazie. – conor

+0

Beh, conosco ogni singolo chip NFC, perché nel mio lavoro sviluppo effettivamente chip e middleware NFC. (parte di una squadra di cause). Se i chip non funzionano e hanno problemi di connessione, è spesso il mio lavoro collegare un tracciatore RF, catturare ciò che sta succedendo e scavare fino al livello del bit in cui si trova il problema. Quindi vedo il ciclo di polling ogni giorno. –