我编写了使用NFC功能的应用程序。 我使用4.4.4 Android设备来测试它们。
这是我AndroidMainfest的一部分:
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/plain" />
</intent-filter>
</activity>
我的问题是:当设备接近nfc标签时,设备打开默认nfc应用程序&#34;触发&#34; (当它没有进入谷歌播放时)我安装了其他nfc应用程序,但选择的应用程序对话框应用程序不会出现),而且我无法捕获事件。
答案 0 :(得分:1)
触发器应用程序将NdefRecord
设置为特定的mime类型,因此Android系统会检查是否有一个应用程序可以使用特定的mime类型打开此标记。
请阅读:http://developer.android.com/guide/topics/connectivity/nfc/nfc.html#ndef
因此,如果您想从Trigger中捕获标记,则必须在activity
中向AndroidManifest
添加过滤器。例如,像这样:
<activity android:name=".MyActivity">
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:mimeType="text/scriptlet"/>
<data android:mimeType="text/x-nfc-taskl"/>
<data android:mimeType="x/nfctl"/>
</intent-filter>
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:mimeType="application/nfctl"/>
<data android:mimeType="application/nfctlat"/>
<data android:mimeType="application/nfctlfree"/>
</intent-filter>
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:mimeType="x/nfctl-s"/>
<data android:mimeType="application/nfctl"/>
</intent-filter>
</activity>