0

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

有什么建议吗?

参考:

4

1 回答 1

0

迟到的答案:我认为答案就在这里:Android NFC 技术列表 - 问题

事实上,我将 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" />
于 2014-02-27T14:37:10.457 回答