Frage

Ich arbeite an einer Android-App, die NFC zum Öffnen einer Aktivität verwendet.Also haben wir wie im API-Beispiel ein NFC-Tag mit einem bestimmten MIME-Typ geschrieben, sodass nur meine App die darin enthaltenen Daten öffnen kann.Es funktionierte einwandfrei auf Android 2.3.3 bis Android 4.0.4.

Nachdem ich mein Samsung Galaxy Nexus auf Android 4.1 Jelly Bean aktualisiert habe, öffnet das NFC-Tag meine App nicht mehr.Das Lustige daran ist, dass das Telefon den Mime-Typ des Tags erkennt, wenn es ihn im standardmäßigen Android-NFC-Reader anzeigt.

Die Frage ist also...Warum wird die App in Android 4.1 Jelly Bean nicht über das NFC-Tag geöffnet?

Der Intent-Code in meinem AndroidMenifest.XML:

    <activity 
        android:name=".ActivityToOpenWithNfcTag"
        android:screenOrientation="portrait">
        <intent-filter>
            <action android:name="android.nfc.action.NDEF_DISCOVERED" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:mimeType="application/com.android.barcodeScanner" />
        </intent-filter>
    </activity>

Wenn ich den Mime-Typ „text/plain“ im Tag und in der App verwende, funktioniert es, aber ich benötige meinen eindeutigen Mime-Typ.

Bitte helfen Sie!Danke.

War es hilfreich?

Lösung

Ich hatte genau das gleiche Problem und habe herausgefunden, dass in Jelly Bean der Mimetyp in alle Kleinbuchstaben umgewandelt wird.Ich sehe, dass in Ihrem Mimetype-Tag ein Großbuchstabe steht "S".

Versuchen Sie stattdessen Folgendes:

mimeType = "application/com.android.barcodescanner"

Hoffe das hilft :)

Andere Tipps

In Jellybean, NDEF-Erkennung und Analyse von Tags wurde verbessert und strenger werden.Wahrscheinlich ist Ihre NDEF-Nachricht irgendwie ungültig.Prüfen Sie zum Beispiel den Wert der Nutzlastanzeige innerhalb der NDEF-Nachricht und vergleichen Sie das Vergleichen mit der gesamten NDEF-Nachrichtenlänge, die auf dem Tag gespeichert ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top