NFC lesen und schreiben
-
27-10-2019 - |
Frage
Ich schreibe eine Android -Anwendung zum Lesen und Schreiben eines Tags mit Verwendung Nexus s. Ich habe zwei verschiedene Aktivitäten, eine zum Lesen und eine, die sie schreiben können. Beide sind in ihren jeweiligen Kontexten aufgerufen zu werden. Mein Manifest sieht so aus:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="bri.nfc.NfcTagReaderV1"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="10" />
<uses-permission android:name="android.permission.NFC"/>
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".NFCTagReaderV1Activity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.example.android.nfc.TagViewer">
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED"/>
<data android:mimeType="text/*" />
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED"/>
<data android:scheme="http" />
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
<activity android:name="bri.nfc.writetag.WritetagActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED"/>
<data android:mimeType="text/*" />
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED"/>
<data android:scheme="http" />
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
</application>
</manifest>
Bei meiner Ausführung werden die Aktivitäten zufällig bezeichnet. Einmal wird die TagViewer -Aktivität aufgerufen und eine andere Zeit -Writetag -Aktivität genannt.
Ich verlange, dass meine Bewerbung "TagViewer -Aktivitäten" unter Read- und "WriteTag -Aktivität" auf Schreiben aufruft.
Lösung
Sie müssen keinen Absichtsfilter für Ihre "WriteTag -Aktivität" angeben. Stattdessen müssen Sie das Vordergrundversandsystem verwenden.
Der folgende Link sendet Sie auf eine Android Dev -Seite, auf der beschrieben wird, wie ein Vordergrund -Versandsystem implementiert wird. Die Implementierung ist sehr einfach.
http://developer.android.com/guide/topics/nfc/index.html#foregrown-dispatch
Wenn der neue Event entlassen wird, können Sie Ihre Daten auf das NFC-Tag schreiben. Für das Schreiben von Daten zu einem NFC -Tag folgen diesem Link http://developer.android.com/guide/topics/nfc/index.html#write
So mache ich das in meinen Anwendungen und es funktioniert großartig.
Andere Tipps
Wenn Ihre Aktivität wieder auftritt Lesen des NFC -Tags mit Vordergrundversand.Und während des Schreibens sollten Sie den Vordergrundversand für die Schriftaktivität erneut einstellen. Vergessen Sie nicht, den Vordergrundversand in der Onpause -Methode Ihrer Aktivität zu stoppen. Damit sich zu einer Zeit nur 1 Aktivität für den Vordergrundversand registriert