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.

War es hilfreich?

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

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