如何使用我的活动而不是前台接收NFC标签数据

时间:2014-11-14 09:21:48

标签: android android-intent nfc launcher ndef

我正在开发NFC应用程序,以便在点击NFC标签时打开WiFi并连接到某个特定网络。 到目前为止,我已经明白NFC活动应该是前景,以便从Android系统获取NFC数据。 但是,我怀疑我的理解是否正确,因为我已经看过NFC任务的操作(https://play.google.com/store/apps/details?id=com.wakdev.nfctasks)。 虽然应用程序在接收NFC数据时未激活,但它正在启动相应的任务并成功启用WiFi。

我想知道它是如何可能的。 有没有人可以解释它的操作?

提前致谢。

使用NFC工具制作的NFC标签上的Logcat' :I / NfcDispatcher(822):将AAR与NDEF匹配 :E / SoundPool(822):在非正常模式下不要播放音池 :E / NfcService(822):applyAlternativeHandler ::收到未知消息 :I / ActivityManager(553):START {act = android.nfc.action.NDEF_DISCOVERED typ = w1 / 33 pkg = com.wakdev.nfctasks cmp = com.wakdev.nfctasks / .NFCActivity(has extras)u = 0} from pid 822

Logcat点击我的应用程序生成的NFT标签 :I / NfcDispatcher(822):将AAR与应用程序启动相匹配 :E / SoundPool(822):在非正常模式下不要播放音池 :E / NfcService(822):applyAlternativeHandler ::收到未知消息 :I / ActivityManager(553):START {act = android.intent.action.MAIN cat = [android.intent.category.LAUNCHER] flg = 0x10000000 pkg = com.Farraf.DigitalSignage cmp = com.Farraf.DigitalSignage / .main来自pid 822的.DigitalSignageActivity u = 0} :I / ActivityManager(553):启动proc com.Farraf.DigitalSignage for activity com.Farraf.DigitalSignage / .main.DigitalSignageActivity:pid = 10160 uid = 10008 gids = {3003,1015,1028}

1 个答案:

答案 0 :(得分:0)

除了通过前台调度系统(请参阅Foreground Dispatch System)接收NFC标签事件外,您还可以注册要启动的活动,并通过应用的AndroidManifest.xml接收NFC事件(请参阅Filtering for NFC Intents )。例如。如果你的NFC标签包含URI http://www.example.com/,你可以创建一个这样的意图过滤器:

<activity ...>
    <intent-filter>
        <action android:name="android.nfc.action.NDEF_DISCOVERED"/>
        <category android:name="android.intent.category.DEFAULT"/>
        <data android:scheme="http"
              android:host="www.example.com" />
    </intent-filter>
</activity>