NFC读写

时间:2011-09-06 12:43:43

标签: android tags android-manifest nfc

我正在编写一个Android应用程序来使用Nexus S读取和写入标记。 我有两个不同的活动,一个用于读取,另一个用于写入,两个都在各自的上下文中被调用。我的清单看起来像这样:

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

在我执行时,活动是随机调用的。有一次调用tagviewer活动并调用另一个时间写活动。

我要求我的应用程序在读取时调用“tagviewer活动”,在写入时调用“writetag活动”。

2 个答案:

答案 0 :(得分:0)

您无需为“writetag活动”声明一个意图过滤器。相反,您需要使用前台调度系统。

以下链接将您转到Android Dev页面,该页面描述了如何实现前台调度系统。实施非常直接。

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

当触发newIntent-event时,您就可以在NFC标签上写入数据。要在NFC标签上写入数据,请点击此链接http://developer.android.com/guide/topics/nfc/index.html#write

这就是我在我的应用程序中执行此操作的方式,它运行良好。

答案 1 :(得分:0)

当您的活动恢复时,您应该在ActivityClass的OnResume方法()中使用前台调度。阅读标记后,请按照此链接Reading NFC Tag With ForeGround Dispatch。在编写时,您应该再次为WritingActivity设置前台调度。别忘了在Activity的OnPause方法中停止Foreground Dispatch。因此,一次只有1个活动会注册前台调度