Autore Topic: NFC Initiator e Target: Android può implementare entrambi?  (Letto 6545 volte)

Offline guidocx84

  • Utente junior
  • **
  • Post: 68
  • Respect: 0
    • Mostra profilo
NFC Initiator e Target: Android può implementare entrambi?
« il: 08 Giugno 2011, 09:52:07 CEST »
0
Ciao a tutti,
ho iniziato da poco a studiarmi come Android implementa la tecnologia NFC. Interessante il fatto che supporti varie ISO. Per quanto mi riguarda, sono interessato al funzionamento per ISO 15693 (NFCv).
In un sistema RFID in generale, sappiamo distinguere due elementi: l'Initiator, che può fare da reader/writer ed il Target (un tag o una smart card ad esempio).
Il primo elemento è quello che, tramite un campo elettromagnetico a bassa intensità, va ad alimentare il tag che, nel mio caso è passivo (tessera smart card).
Le funzionalità che vorrei provare sono due:

1) Con il terminale Android, leggere la smart card (comportamento da Initiator);

2) Utilizzare il terminale Android come smart card e farlo leggere ad un Reader esterno (comportamento da Target).

Leggendo dalla Development Guide (http://developer.android.com/guide/topics/nfc/index.html), già nelle prime righe, troviamo scritto:

An Android device with NFC hardware will typically act as an initiator when the screen is on. This mode is also known as NFC reader/writer. It will actively look for NFC tags and start activities to handle them.

Per quanto riguarda la seconda funzionalità, sempre dalla Dev Guide, ho visto che è presente la classe Tag nella cui descrizione ho trovato scritto:

"Represents a passive NFC target. These can come in many form factors such as a tag, card, key fob, or even a phone doing card emulation."

Quindi è possibile far agire da smart card il telefono? Volendo due terminali android (uno che agisce da reader ed uno da tag) possono essere sfruttati congiuntamente da reader e da tag? Qualcuno di voi ha provato?

Ultima cosa: leggendo altri topic ho visto che nel frattempo pare che ci sia anche il Samsung Ace che supporta (a livello hardware) NFC. Si sa nulla circa la rom? Il s.o. supporterà davvero NFC?

Grazie a tutti!!

Offline Nicola_D

  • Moderatore
  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:NFC Initiator e Target: Android può implementare entrambi?
« Risposta #1 il: 08 Giugno 2011, 10:00:37 CEST »
0
ciao, che funzioni come card emulation è possibile, nel menu NFC sul nexus s si può impostare come Target.
ho trovato questo link:
CardEmulation - Open NFC for Android SDK addon documentation | Android Developers
e questo
http://groups.google.com/group/android-developers/browse_thread/thread/418c9b370f08a9f7
e questo:
Gibraltar – Card emulation changes in Android 2.3.4

ma non ho mai provato niente di tutto ciò... se hai un nexus S usa il sistema nel menu!
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline guidocx84

  • Utente junior
  • **
  • Post: 68
  • Respect: 0
    • Mostra profilo
Re:NFC Initiator e Target: Android può implementare entrambi?
« Risposta #2 il: 08 Giugno 2011, 10:50:18 CEST »
0
Ciao Nicola!!
Grazie per la risposta! Come sempre gentilissimo! Ottimi link! Questo video parrebbe dimostrare che si può fare (soprattutto perché parla di "tag emulation mode")!

<a href="http://www.youtube.com/watch?v=28TwCpx4Dng" target="_blank">http://www.youtube.com/watch?v=28TwCpx4Dng</a>

Non bisogna confondere infatti il P2P Mode con il Card Emulation Mode (come giustamente spiegato nel link che hai trovato: http://groups.google.com/group/android-developers/browse_thread/thread/418c9b370f08a9f7?pli=1). Perché se uso un cellulare come smart card e la avvicino ad un reader classico ISO 15693 (non android), mi sa che la connessione P2P non la fa...

Il fatto di poter provare NFC in maniera bidirezionale sarebbe ottimo!
La cosa che vorrei testare è se sia possibile trasferire la logica della mia smart card attuale su Android... è questo che un po' mi preoccupa...
Ancora non ho un Nexus S... ancora...  ;-)
Però sarei curioso di capire cosa legge un reader quando sul menu di un nexus imposti questa "Card emulation"... perché non vorrei che fosse semplicemente stata inserita a scopo di test (per testare un altro dispositivo con funzionalità di reader/writer) ma non sia modificabile... io dovrei inserire la mia logica altrimenti è inutile.. non so se mi sono spiegato..  o_O
Comunque se ti capita nei prossimi mesi di testare la card emulation fammi sapere. Allo stesso modo, se faccio prima io, riporterò qui i risultati. Penso possa essere di interesse comune. In generale, il cellulare sta diventando il "dispositivo unico". Quindi ben venga la possibilità di evitare di consegnare una smart card a chi ha un cellulare Android... soprattutto ben vengano esperimenti come quelli di Alcatel-Lucent..  ;-)

Offline Nicola_D

  • Moderatore
  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:NFC Initiator e Target: Android può implementare entrambi?
« Risposta #3 il: 08 Giugno 2011, 11:07:44 CEST »
0
allora, ho provato a guardare un attimo, il discorso del "condividi il mio tag" sta nella applicazione TAG che c'è nel nexus S,quindi se ti scarichi i sorgenti da github in teoria hai gia tutto il codice pronto!
non ho possibiltà di provare perchè non ho altri nexus S o reader esterni, ma se viene condiviso come TAG è sicuramente in un certo modo, e molto probabilmente segue specifiche NDEF. Ho visto che come TAG si può condividere Contatto,URL o Testo.
in teoria te condividi il testo dal cell e ci metti il testo che segue la tua logica!
purtroppo di piu non ti so aiutare, non ho abbastanza dispositivi!
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline guidocx84

  • Utente junior
  • **
  • Post: 68
  • Respect: 0
    • Mostra profilo
Re:NFC Initiator e Target: Android può implementare entrambi?
« Risposta #4 il: 08 Giugno 2011, 11:36:13 CEST »
0
Citazione
quindi se ti scarichi i sorgenti da github in teoria hai gia tutto il codice pronto!

Questa mi manca... Erudiscimi ti prego!  ;-)

Per quanto riguarda il resto.. tranquillo.. ti capisco.. anche a me mancano i mezzi per adesso.. però ci aggiorniamo dai.. oppure se chiunque altro riesce a provare questa cosa.. ci farà sapere  ;-)

Offline Nicola_D

  • Moderatore
  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:NFC Initiator e Target: Android può implementare entrambi?
« Risposta #5 il: 08 Giugno 2011, 14:22:36 CEST »
0
Questa mi manca... Erudiscimi ti prego!  ;-)

Per quanto riguarda il resto.. tranquillo.. ti capisco.. anche a me mancano i mezzi per adesso.. però ci aggiorniamo dai.. oppure se chiunque altro riesce a provare questa cosa.. ci farà sapere  ;-)
c'è un tutorial qui sul forum per come usare GIT per scaricare i sorgenti, cerca GIT sorgenti e lo trovi sicuro!
qui la lista dei sorgenti android.git.kernel.org Git

qui l'app TAG
http://android.git.kernel.org/?p=platform/packages/apps/Tag.git;a=tree
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline guidocx84

  • Utente junior
  • **
  • Post: 68
  • Respect: 0
    • Mostra profilo
Re:NFC Initiator e Target: Android può implementare entrambi?
« Risposta #6 il: 08 Giugno 2011, 15:33:14 CEST »
0
Ok. Scaricato! Appena mi arriva il Nexus S inizio a fare qualche prova... ci aggiorniamo. Grazie per adesso!  ;-)

Offline guidocx84

  • Utente junior
  • **
  • Post: 68
  • Respect: 0
    • Mostra profilo
Re:NFC Initiator e Target: Android può implementare entrambi?
« Risposta #7 il: 09 Giugno 2011, 11:48:35 CEST »
0
Ciao di nuovo..
Intanto ho aggiornato l'SDK e ho creato l'emulatore (API Level 10)... una cosa: ma è normale che sotto Impostazioni -> Wireless e Reti non ci sia la sezione NFC che invece è presente nel dispositivo reale? Vi risulta o ho sbagliato qualcosa io? Grazie  ;-)

p.s. manca anche il menu per le impostazioni SIP che dovrebbe stare sotto call settings...
« Ultima modifica: 09 Giugno 2011, 11:51:50 CEST da guidocx84 »

Offline Nicola_D

  • Moderatore
  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:NFC Initiator e Target: Android può implementare entrambi?
« Risposta #8 il: 09 Giugno 2011, 11:59:07 CEST »
0
Ciao di nuovo..
Intanto ho aggiornato l'SDK e ho creato l'emulatore (API Level 10)... una cosa: ma è normale che sotto Impostazioni -> Wireless e Reti non ci sia la sezione NFC che invece è presente nel dispositivo reale? Vi risulta o ho sbagliato qualcosa io? Grazie  ;-)

p.s. manca anche il menu per le impostazioni SIP che dovrebbe stare sotto call settings...
si, è normale, purtroppo l'emulatore non ha l'adapter NFC, mi pare che se avvii l'emulatore e fai il getAdapter ti da null...
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline guidocx84

  • Utente junior
  • **
  • Post: 68
  • Respect: 0
    • Mostra profilo
Re:NFC Initiator e Target: Android può implementare entrambi?
« Risposta #9 il: 09 Giugno 2011, 12:01:48 CEST »
0
Ok, grazie mille per la conferma.
Mi sa che qui c'è da darsi da fare (:money_mouth:) e comprare il cellulare...  :-) A presto...  ;-)

Offline guidocx84

  • Utente junior
  • **
  • Post: 68
  • Respect: 0
    • Mostra profilo
Re:NFC Initiator e Target: Android può implementare entrambi?
« Risposta #10 il: 11 Luglio 2011, 19:06:07 CEST »
0
Sto finalmente per avere il Nexus S così da poter iniziare a fare i test con NFC.
Una sola domanda: probabilmente lo prenderò con l'abbonamento Wind.
Il sistema operativo è stato modificato secondo voi o il cellulare si comporterà come un normale cellulare nobrand?
Grazie!

Offline Nicola_D

  • Moderatore
  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:NFC Initiator e Target: Android può implementare entrambi?
« Risposta #11 il: 11 Luglio 2011, 20:37:45 CEST »
0
Sto finalmente per avere il Nexus S così da poter iniziare a fare i test con NFC.
Una sola domanda: probabilmente lo prenderò con l'abbonamento Wind.
Il sistema operativo è stato modificato secondo voi o il cellulare si comporterà come un normale cellulare nobrand?
Grazie!
io credo nobrand!
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline guidocx84

  • Utente junior
  • **
  • Post: 68
  • Respect: 0
    • Mostra profilo
Re:NFC Initiator e Target: Android può implementare entrambi?
« Risposta #12 il: 12 Luglio 2011, 08:18:38 CEST »
0
Citazione
io credo nobrand!
Grazie per la conferma! Dopo aver visto letteralmente sparire le "Impostazioni SIP" da un Nokia brandizzato TIM ho sempre il sospetto che il gestore telefonico vada a mettere le mani sul sistema operativo...  ;-) A presto!

Offline guidocx84

  • Utente junior
  • **
  • Post: 68
  • Respect: 0
    • Mostra profilo
Re:NFC Initiator e Target: Android può implementare entrambi?
« Risposta #13 il: 22 Luglio 2011, 12:18:54 CEST »
0
Ciao di nuovo! Con questo post torno in topic... allora, mi è finalmente arrivato il Nexus S e ho fatto alcune prove. Ho a disposizione per i miei esperimenti (oltre al cellulare) dei tag RFID ISO 15693 e dei reader analoghi. I reader sono settati per fare la cosa più semplice in questo momento, ovvero comportarsi da Initiator e leggere l'UID di un tag. Quello che mi è riuscito fare è usare il Nexus da Initiator (gli ho fatto leggere l'UID di un tag, gli ho fatto scrivere in una porzione di memoria di quel tag con il metodo byte [] transceive (byte [] data) e gli ho fatto leggere quello che ho scritto in quella posizione di memoria). Questa era la prova più semplice da superare (non tanto in termini di codice, perché come la Dev Guide specifica, la transceive lavora con dati raw e quindi dobbiamo creare la nostra logica con cui inviare e ricevere roba codificata in byte, quanto piuttosto per il fatto che siamo sicuri che la funzionalità di initiator sia supportata).
Adesso arriva il complicato per il quale chiedo lumi. Devo usare il Nexus come target, ovvero come se fosse lui un tag RFID 15693. L'applicazione tag l'ho provata ma naturalmente il mio reader manco lo vede il cellulare. Questo perché secondo me, a quanto ho capito, la funzione "Condividi il mio tag" dell'app Tag installata sul Nexus S innanzi tutto usa la funzionalità P2P e non la Card Emulation e soprattutto comunica in formato NDEF (specifica NFC) che non è riconosciuto da reader RFID (come ad. es. gli ISO 15693). Avete idea di come posso risolvere? Avete qualche news? Io ho cercato un po' su internet e pare che il supporto alla Card Emulation sia stato inserito nell'sdk ma commentato... come se fosse Work In Progress... vi risulta? Grazie mille!

p.s. questa è la cosa più vicina a quello che cerco che ho trovato... CardEmulation - Open NFC for Android SDK addon documentation | Android Developers
« Ultima modifica: 22 Luglio 2011, 12:25:35 CEST da guidocx84, Reason: Aggiunta link »

Offline Nicola_D

  • Moderatore
  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:NFC Initiator e Target: Android può implementare entrambi?
« Risposta #14 il: 22 Luglio 2011, 14:28:44 CEST »
0
da quello che so io,al momento il card emulation è solo NDEF, almeno al momento...
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia