【问题标题】:Open my app when an nfc tag of a custom format is discovered发现自定义格式的 nfc 标签时打开我的应用程序
【发布时间】:2012-06-26 04:18:51
【问题描述】:

我正在制作一个用于库存管理的应用程序。每个 stock_item 都有一个标签,带有一个唯一标识符,带有一个 custom_format。 像这样:

stock_manager_pro:stock_item:12345

stock_manager_pro:user:john

我想让我的应用在设备发现其内容以 stock_manager_pro

开头的标签时自动打开

使用此代码,当手机发现带有纯/文本内容的 nfc 标签时,我的应用程序会打开,但我希望能够过滤客户文本。

        <intent-filter>
            <action android:name="android.nfc.action.NDEF_DISCOVERED"/>
            <data android:mimeType="text/plain" />
            <category android:name="android.intent.category.DEFAULT"/>
        </intent-filter>

【问题讨论】:

  • 我刚刚找到了执行此操作的方法。我创建了一个带有 URI 内容的标签。我没有写 http:// 地址,而是将 URI 设置为 stock_manager_pro://stock_item/1234。然后,在清单中,我应用了这个 URI 过滤器: 对我来说已经足够了,因为我可以决定标签的内容,但是如果我不能更改标签内容,任何人知道用 text/plain 标签执行相同操作的方法吗?
  • 您可能需要查看 Android 应用记录

标签: android android-intent android-activity nfc intentfilter


【解决方案1】:

我正在解决同样的问题... 我发现您应该创建自己的自定义 MIME 类型。 在清单文件中你应该简单地删除

<action android:name="android.nfc.action.NDEF_DISCOVERED"/> 

例如

<intent-filter >
   <!--  <action   android:name="android.nfc.action.NDEF_DISCOVERED" />-->
   <category android:name="android.intent.category.DEFAULT" />
   <data android:mimeType="application/vnd.com.nfctagwriter" />
</intent-filter>

【讨论】:

    【解决方案2】:

    您可以添加自己的 mime 类型,并且不必在开始时具有完全限定的“应用程序”。它还可以理解“app/customname”.. 这对于保持较小的数据大小很有用。

    例如,堆栈溢出 mime 类型可以是“app/so”而不是“application/stackoverflow”。

    虽然我猜这取决于您觉得其他人使用“app/so”的可能性有多大。在我们的例子中,这无关紧要,因为我们只是在内部使用它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多