【问题标题】:Is there a way to write an intent filter to catch a TNF_UNKNOWN NdefMessage?有没有办法编写意图过滤器来捕获 TNF_UNKNOWN NdefMessage?
【发布时间】:2014-02-27 22:37:10
【问题描述】:

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

有什么建议吗?

参考:

【问题讨论】:

  • 您可能希望避免在您的应用程序中使用TNF_UNKNOWNTNF_UNKNOWN 不打算用于创建 NDEF 记录。它是一种从解析中跳过记录的方法。

标签: android nfc


【解决方案1】:

迟到的答案: 我想答案就在这里: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" />

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-07
    • 2013-04-13
    • 1970-01-01
    • 2011-06-09
    • 1970-01-01
    • 2012-02-22
    • 1970-01-01
    • 2022-08-08
    相关资源
    最近更新 更多