Autore Topic: Riconoscere il Mifare Ultralight  (Letto 2794 volte)

Offline Vincenzo

  • Nuovo arrivato
  • *
  • Post: 24
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Nexus S
  • Sistema operativo:
    Windows 7
Riconoscere il Mifare Ultralight
« il: 28 Agosto 2011, 10:11:46 CEST »
0
Perchè non riesco a leggere i tag Ultralight??  :-(

Non riesco a creare un intent alla lettura del tag (cosa che riesco con il Classic).
Ovviamente se uso NFC TagInfo viene riconosciuto e letto.

Mi interessa utilizzare i Mifare Ultralight per questi motivi:
a) Sono più piccoli, 25mm di diametro.
b) Costano meno (per quantitativi superiori ai 2000 Pz passa da 85 a 35 c€).
c) La lettura è più veloce.

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:Riconoscere il Mifare Ultralight
« Risposta #1 il: 28 Agosto 2011, 11:10:58 CEST »
0
Come fai il riconoscimento? Via XML filter,o foreground dispatch? Posta un po di codice,stasera ti dico come sistemare!
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 Vincenzo

  • Nuovo arrivato
  • *
  • Post: 24
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Nexus S
  • Sistema operativo:
    Windows 7
Re:Riconoscere il Mifare Ultralight
« Risposta #2 il: 28 Agosto 2011, 11:32:36 CEST »
0
L'idea è impostare i parametri nel Manifest.
Vorrei far partire una determinata applicazione alla lettura/riconoscimento del Tag tipo Ultralight per leggerne l'ID.

Questo quello che uso per il Classic con testo:
Codice: [Seleziona]
<intent-filter>
     <action android:name="android.nfc.action.NDEF_DISCOVERED" />
     <category android:name="android.intent.category.DEFAULT" />
     <data android:mimeType="text/plain" />
</intent-filter>
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:Riconoscere il Mifare Ultralight
« Risposta #3 il: 28 Agosto 2011, 18:52:11 CEST »
0
Non sono al pc quindi non ti posso passare codice,ma in questo caso ti serve l action tech discovered,alla quale dai un XML con i filtri delle tecnologie da usare..guarda sul sito ufficiale,c'è un esempio base!
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 Vincenzo

  • Nuovo arrivato
  • *
  • Post: 24
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Nexus S
  • Sistema operativo:
    Windows 7
Re:Riconoscere il Mifare Ultralight
« Risposta #4 il: 28 Agosto 2011, 19:03:33 CEST »
0
Fatto ma non funziona oppure sbaglio qualcosa (ma cosa?!?!)...

Nel Manifest
Codice: [Seleziona]
<intent-filter>
     <action android:name="android.nfc.action.TECH_DISCOVERED"> </action>
     <category android:name="android.intent.category.DEFAULT"> </category>
</intent-filter>
     <meta-data android:name="android.nfc.action.TECH_DISCOVERED" android:resource="@xml/nfc_tech_filter" > </meta-data>

nfc_tech_filter.xml
Codice: [Seleziona]
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
    <tech-list>
        <tech>android.nfc.tech.MifareUltralight</tech>
        <tech>android.nfc.tech.Ndef</tech>
        <tech>android.nfc.tech.NfcA</tech>
    </tech-list>
</resources>

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:Riconoscere il Mifare Ultralight
« Risposta #5 il: 29 Agosto 2011, 00:38:34 CEST »
0
  <meta-data
            android:name="android.nfc.action.TECH_DISCOVERED"
            android:resource="@xml/nfc_tech_filter"
            android:mimeType="*/*" />
ti manca il mime type.
Occhio che il filter, fatto come dici te richiede che il tag sia TUTTI e TRE i tipi, NDEF toglilo,può essere faccia casino se il tag non è gia ndef formattato!
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 Vincenzo

  • Nuovo arrivato
  • *
  • Post: 24
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Nexus S
  • Sistema operativo:
    Windows 7
Re:Riconoscere il Mifare Ultralight
« Risposta #6 il: 29 Agosto 2011, 22:13:52 CEST »
0
Ho fatto come suggerito ma ancora non riesco a leggere il tag Mifare Ultralight !!!
Ho inserito il mimeType, ma niente!!
Ho provato modificando (togliendo e mettendo) le "technology classes", ma niente!!

I tag sono dei Touchatag con un URI type "U" preregistrato, protetto e sono Read-Only.



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:Riconoscere il Mifare Ultralight
« Risposta #7 il: 30 Agosto 2011, 00:48:03 CEST »
0
come tech prova a lasciare SOLO mifareUltralight e vedi....
se attacchi il cell in debug, quando passi sul tag dovrebbe dirti il tipo di intent (NDEF,TECH,TAG)... dimmi tutto quel che ti dice il debug!
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 Vincenzo

  • Nuovo arrivato
  • *
  • Post: 24
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Nexus S
  • Sistema operativo:
    Windows 7
Re:Riconoscere il Mifare Ultralight
« Risposta #8 il: 30 Agosto 2011, 22:58:00 CEST »
0
Anche lasciando solo MifareUltralight non lancia l'intent.

Quello che vedo nel LogCat è il seguente testo:
Codice (XML): [Seleziona]
Starting: Intent { act=android.nfc.action.NDEF_DISCOVERED dat=http://www.ttag.be/m/04C93E51962280 flg=0x10000000 (has extras) } from pid 4851
Starting: Intent { flg=0x10000000 cmp=com.android.nfc3/com.android.nfc.TechListChooserActivity (has extras) } from pid 4851
Displayed com.android.nfc3/com.android.nfc.TechListChooserActivity: +114ms
Chiede "Seleziona un'azione" Visualizzando la lista dei programmi "avviabili".

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:Riconoscere il Mifare Ultralight
« Risposta #9 il: 30 Agosto 2011, 23:05:24 CEST »
0
ma se è ndef allora usa la stessa cosa che usavi prima, solo che stavolta il dat è un URL quindi text/plain non va bene! metti uno */* nel mime type
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 Vincenzo

  • Nuovo arrivato
  • *
  • Post: 24
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Nexus S
  • Sistema operativo:
    Windows 7
Re:Riconoscere il Mifare Ultralight
« Risposta #10 il: 30 Agosto 2011, 23:14:58 CEST »
0
Il fatto è che in "Seleziona un'azione" il mio programma non è presente! Anche se metto "*/*" come MimeType.

Se passo sul Tag con il programma in primo piano parte in loop il seguente messaggio:
Codice: [Seleziona]
ERROR/NfcService(16287): No tag fallback activity found for Intent { act=android.nfc.action.TAG_DISCOVERED flg=0x10000000 (has extras) }
WARN/NfcService(16287): Dispatch override registered, but no filters matched
DEBUG/NativeNfcTag(16287): Tag lost, restarting polling loop
WARN/NfcService(16287): Failed to connect to tag

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:Riconoscere il Mifare Ultralight
« Risposta #11 il: 30 Agosto 2011, 23:16:38 CEST »
0
Dispatch override registered, but no filters matched

mmmm serve che posti un po di codice...
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 Vincenzo

  • Nuovo arrivato
  • *
  • Post: 24
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Nexus S
  • Sistema operativo:
    Windows 7
Re:Riconoscere il Mifare Ultralight
« Risposta #12 il: 30 Agosto 2011, 23:35:02 CEST »
0
Per essere precisi: quando passo sul Tag UltraLight con il programma "TagIt" (cos'ì l'ho chiamato!) in primo piano, o anche no, il LogCat visualizza quanto sotto e viene chiesto di selezionare un programma tra questi: NFC Info, Tag, TagInfo, TouchaTag.
Codice: [Seleziona]
Starting: Intent { act=android.nfc.action.NDEF_DISCOVERED dat=http://www.ttag.be/m/04C93E51962280 flg=0x10000000 (has extras) } from pid 17223
Starting: Intent { flg=0x10000000 cmp=com.android.nfc3/com.android.nfc.TechListChooserActivity (has extras) } from pid 17223
Tag lost, restarting polling loop

Se in primo piano è attivo il programma con cui leggo i Mifare Classic ovvero Stycky Notes, allora il messaggio strano è quello prima riportato.
NOTA: con Stycky Notes non leggo gli Ultralight; gli UltraLight riesco a leggerli solo con i generici:  NFC Info, Tag, TagInfo, TouchaTag.
« Ultima modifica: 30 Agosto 2011, 23:38:25 CEST da Vincenzo »