在没有特定应用的情

Mat*_*owa 3 tags android nfc ndef

我想知道是否有任何方法可以将一串文本(URL)保存到NFC标签,让我们说MIFARE或NTAG203,可以被其他设备(智能手机)读取,而无需任何特殊的标签读取应用程序.

我已经测试了几个应用程序,例如Trigger for Android,并注意到如果读取标签的设备没有所需的应用程序来读取标签上的数据/指令,它仍会打开一个URL,将您发送到Play商店下载该应用程序应用.

因此必须有一种方法来保存所有/部分支持NFC的手机可读的数据.简单地说,我想为Android创建一个应用程序,将数据写入NFC标签,并且可以通过随机的NFC手机读取/打开/执行数据.

那么是否可以准备一个NFC标签,在读取设备上触发某些操作而无需特定的应用程序?我可以使用我的应用程序在NFC标签上写入什么类型的数据来实现此目的?

Mic*_*and 5

首先,总的来说,我同意CommonsWare的观点,即它总是一个处理NFC事件的"特殊"应用程序.但是,在研究Android时,我会将AOSP的各种平台应用视为Android系统的一部分.即使并非所有设备都可以使用它们.

查看Andrid 4.4+,以下数据类型由此类系统应用程序处理:

  • 浏览器:具有方案"http:"和"https:"的URI.
  • 联系人和拨号程序:用于导入联系人的MIME类型"text/vcard"和"text/x-vcard".
  • 电子邮件:方案为"mailto:"的URI

此外,如果没有其他应用程序处理某个标签,NFC设备应该(?)有标签应用程序,尝试处理各种类型(在用户确认后):

  • 方案"tel"的URI将导致ACTION_CALL意图调用给定的数字.
  • 具有方案"sms"/"smsto"的URI将导致ACTION_SENDTO意图开始编辑SMS消息.
  • 其他URI应该(?)在ACTION_VIEW意图中转发.
  • 类型为"text/x-vcard"的MIME类型记录(如果尚未处理)应在ACTION_VIEW意图中转发.
  • Text RTD记录的文本消息(不是text/*MIME类型!)应该显示在Tag应用程序中.不幸的是,许多愚蠢的(!)NFC应用程序注册了文本记录,因此您通常无法访问Tag应用程序.
  • 应该在Tag应用程序中显示类型为image/*的MIME类型记录(如果Android支持图像类型).

有些记录由NFC服务本身处理(这应始终在Android上提供):

  • Android应用程序记录(类型名称为"urn:nfc:ext:android.com:pkg"的NFC论坛外部类型)会导致发送带有"market:// details?id = {PACKAGE_NAME}"URI的ACTION_VIEW意图.
  • 类型名称为"urn:nfc:nokia.com:bt"的NFC论坛外部类型被解析用于蓝牙连接切换.
  • 以Handover Select RTD记录开头并包含类型为"application/vnd.bluetooth.ep.oob"的MIME类型记录的NDEF消息被解析用于蓝牙连接切换.