有没有办法编写一个意图过滤器来捕获TNF_UNKNOWN NdefMessage?

时间:2013-06-25 01:41:06

标签: android nfc

我在网上看到的大多数示例都使用带有mime类型过滤器的TNF_MEDIA_TYPE来将NFC发起的Intent路由到正确的活动。 但我找不到任何合适的方法来捕获具有自定义二进制有效负载的TNF_UNKNOWN NdefMessage。

有什么建议吗?

价:

1 个答案:

答案 0 :(得分:0)

迟到的答案: 我想答案就在这里:Android NFC tech-list - problem

事实上,我使用TNF_UNKNOWN作为我自己的标签,一切都在Android 4.1.2中运行良好 但是当谈到Android 4.3时,<intent-filter>不起作用。 所以我必须找到一个正确的过滤器,尤其是正确的<tech-list>资源文件。

在我的情况下,我去了这个稍微修改过的xml文件(添加了Topaz 512):

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2" >
  <!-- Touchatag tag -->
  <tech-list>
    <tech>android.nfc.tech.NfcA</tech>
    <tech>android.nfc.tech.Ndef</tech>
    <tech>android.nfc.tech.MifareUltralight</tech>
  </tech-list>
  <!-- DESFire tag -->
  <tech-list>
    <tech>android.nfc.tech.NfcA</tech>
    <tech>android.nfc.tech.IsoDep</tech>
    <tech>android.nfc.tech.NdefFormatable</tech>
  </tech-list>
  <!-- TOPAZ tag -->
  <tech-list>
    <tech>android.nfc.tech.NfcA</tech>
    <tech>android.nfc.tech.Ndef</tech>
  </tech-list>
  <!-- Any Tag -->
  <tech-list>
    <tech>android.nfc.tech.NfcA</tech>
  </tech-list>
</resources>

同样的明显条目:

<intent-filter>
  <action android:name="android.nfc.action.TECH_DISCOVERED"/>
</intent-filter>
<meta-data
  android:resource="@xml/nfc_tech_filter"
  android:name="android.nfc.action.TECH_DISCOVERED" />