我开发了一款使用NFC功能的应用程序,并为我的测试获得了此TAG。
a busy cat http://nsae02.casimages.net/img/2014/11/20/mini_141120054648901134.png
及其特点
a busy cat http://nsae02.casimages.net/img/2014/11/20/mini_141120054925844663.png
一切都很好..
并在配置
中添加以下行<uses-feature android:name="android.hardware.nfc" android:required="false" />
<intent-filter>
<action android:name="android.nfc.action.TAG_DISCOVERED"/>
<action android:name="android.nfc.action.NDEF_DISCOVERED"/>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
添加我的代码,以便在检测到nfc并选择我的应用时
获取UID ..并使其正确。 (然后找出是否可以获得不同的字段,如文本。) 好。它可以正常工作..
my app blue http://nsae02.casimages.net/img/2014/11/19/mini_141119082121303903.png
那时我的问题是 同样使用NFC TAG TAG Writer应用程序编辑它a busy cat http://nsae02.casimages.net/img/2014/11/20/mini_141120055409818122.png
a busy cat http://nsae02.casimages.net/img/2014/11/20/mini_141120055615627271.png
我放了一个文字,然后我又回到使用我的应用程序,但不再出现在列表中..
Not my app http://nsae02.casimages.net/img/2014/11/19/mini_141119081714874308.png
多次转弯并能够重新出现在我的应用列表格式化NFC TAG
我做错了什么? 如果我没有提供足够的信息,请问我。 非常感谢你
答案 0 :(得分:2)
您需要设置与您的代码类型匹配的正确意图过滤器。目前您正在使用
因此,您遇到的是后退行为:虽然您的标记不包含NDEF记录,但它会与后退相匹配。只要您为其编写文本记录,它就会匹配为文本NDEF记录注册的所有应用程序,因此不会再触发回退。
因此,如果您想在代码上使用文字记录,可以为您的活动添加以下意图过滤器:
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/plain" />
</intent-filter>
请注意,使用文本记录通常是个坏主意。首先,它们仅用于人类可读数据,其次,许多应用程序注册它们,这使得用户难以在活动选择器对话框中选择正确的应用程序。
这仍然无法捕获您的标记不包含任何数据(当前由回退过滤器处理)的情况。在这种情况下,您应该为NfcV标记技术使用TECH_DISCOVERED意图过滤器:
<intent-filter>
<action android:name="android.nfc.action.TECH_DISCOVERED" />
</intent-filter>
<meta-data android:name="android.nfc.action.TECH_DISCOVERED"
android:resource="@xml/filter_nfc" />
在res / xml文件夹中,您需要使用以下内容创建名为filter_nfc.xml的文件:
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<tech-list>
<tech>android.nfc.tech.NfcV</tech>
</tech-list>
</resources>
或者当您想注册多种不同的标签技术时:
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<tech-list>
<tech>android.nfc.tech.NfcV</tech>
</tech-list>
<tech-list>
<tech>android.nfc.tech.NfcA</tech>
</tech-list>
</resources>