2012-03-26 11 views
0

Ich versuche, eine Android-Anwendung zu machen, die mit einem nicht-standard ISO15693 (NFC-V) -Tag kommuniziert.NFC-Tag nicht entdeckt

Das Tag entspricht nicht dem Standard, da der ISO-Befehl "Inventory" nicht implementiert ist. Aber andere Befehle können mit NfcV "transceive" verwendet werden. Android 4.0.1 erkennt dieses Tag nicht automatisch und sendet keine Absicht (mit einem "Tag" -Objekt in seiner Nutzlast) an meine Anwendung. Das ist kein Problem - ich weiß, dass das Tag da ist und ich kann die Anwendung "von Hand" starten.

Mein Problem ist, dass ich ein "Tag" -Objekt brauche, um die "Transceive" -Methode für die Kommunikation zu verwenden. Dieses "Tag" -Objekt wird normalerweise vom Betriebssystem generiert. Um ein eigenes "Tag" -Objekt zu erstellen, brauche ich ein "serviceHandle" (Integer, wahrscheinlich ähnlich einem Datei-Handle) und einen "tagService" (ist das eine Verknüpfung zu einem Gerätetreiber oder einer Betriebssystemfunktion?). Ich konnte keinen Weg finden, diese Mitglieder zu bekommen! Meine Fragen sind:

Wie kann ich ein "Tag" -Objekt konstruieren, um das NfcV "transceive" zu verwenden?

alternativ:

Gibt es eine Möglichkeit der Kontrolle über die NfcAdapter zu erhalten ISO15693 (Nfcv) und transceive raw Befehle zu aktivieren?

Antwort

1

Um NfcV-Tags zu erkennen, sendet der NFC-Chip in Ihrem Android-Gerät den Befehl ISO15693 Inventory. Wenn ein Tag darauf reagiert, erstellt der NFC-Softwarestack ein Handle für das Tag, das der NFC-Dienst in Android verwendet, um ein Objekt Tag zu erstellen. Sie können also kein Objekt Tag ohne ein dem NFC-Software-Stack bekanntes tatsächliches Tag erstellen.

Die Unterstützung des Inventory-Befehls ist gemäß ISO15693 erforderlich. Meine Schlussfolgerung ist, dass Ihr Tag nicht ISO15693-konform ist und ein solcher von der Android-NFC-API leider nicht unterstützt werden kann.

+0

Vielen Dank für Ihre Antwort! –