Pregunta

Estoy escribiendo una aplicación de Android para leer y escribir en una etiqueta usando Nexus S. Tengo dos actividades diferentes, una para Read y otra para escribir, ambas se llamarán durante sus respectivos contextos. Mi manifiesto se ve así:

<?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>

En mi ejecución, las actividades se llaman al azar. Una vez se llama la actividad de TagViewer y se llama otra actividad de escritura.

Necesito que mi aplicación llame a "Actividad de TagViewer" en Read y "Actividad de WriteTag" en Write.

¿Fue útil?

Solución

No necesita declarar un filtro de intención para su "actividad de escritura". En su lugar, debe usar el sistema de despacho de primer plano.

El siguiente enlace lo envía a una página de desarrollo de Android, que describe cómo implementar un sistema de despacho de primer plano. La implementación es muy sencilla.

http://developer.android.com/guide/topics/nfc/index.html#foreground-dispatch

Cuando se dispara el evento netario, entonces puede escribir sus datos en la etiqueta NFC. Para escribir datos en una etiqueta NFC, siga este enlace http://developer.android.com/guide/topics/nfc/index.html#write

Esa es la forma en que estoy haciendo esto dentro de mis aplicaciones y funciona muy bien.

Otros consejos

Cuando su actividad se reanuda, debe usar el envío de primer plano en el método Onresume () de su clase de actividad. Para leer la etiqueta, siga este enlace Lectura de la etiqueta NFC con envío de primer plano.Y mientras escribe, debe volver a configurar el envío de primer plano para la Actividad de Writing. No olvide detener el envío de primer plano en el método de la actividad de su actividad. Así que a la vez, solo 1 actividad se registrará para el envío de primer plano

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top