Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 阅读NFC标签而无特定应用?_Android_Tags_Nfc_Ndef - Fatal编程技术网

Android 阅读NFC标签而无特定应用?

Android 阅读NFC标签而无特定应用?,android,tags,nfc,ndef,Android,Tags,Nfc,Ndef,我想知道是否有任何方法可以将文本字符串(URL)保存到NFC标记,比如MIFARE或NTAG203,其他设备(智能手机)无需任何特殊的标记读取应用程序即可读取这些文本 我已经测试了几个应用程序,例如Trigger for Android,并注意到如果读取标签的设备没有必要的应用程序来读取标签上的数据/指令,它仍然会打开一个URL,将您发送到Play Store下载该应用程序 因此,必须有一种方法来保存所有/某些支持NFC的手机可以读取的数据。简单地说,我想为Android创建一个应用程序,它将数

我想知道是否有任何方法可以将文本字符串(URL)保存到NFC标记,比如MIFARE或NTAG203,其他设备(智能手机)无需任何特殊的标记读取应用程序即可读取这些文本

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

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


那么,是否有可能在不需要特定应用的情况下,准备一个NFC标签来触发读取设备上的某些操作?我可以用我的应用程序在NFC标签上写什么类型的数据来实现这一点?

NFC的一切都涉及到一个响应标签的应用程序。是否为“特殊标签阅读应用程序”取决于您个人对“特殊标签阅读应用程序”的定义

例如,一些Web浏览器将支持NDEF格式的标记,有效负载是URL。但这是一个浏览器的东西,不是操作系统的东西。例如,AOSP浏览器应用程序必须响应NDEF格式的标记,URL以
http
https
开头。根据我对“特殊标签读取应用程序”的定义,AOSP浏览器是一个“特殊标签读取应用程序”。虽然希望所有支持NFC的设备都能附带支持NDEF格式标签的Web浏览器,但这并不能保证

如果您的“某些数据”是其他数据,则无论是否有设置为响应此类数据的应用程序。URL之后,下一个最常见的标记负载通过MIME类型识别,就像您在Web应用程序中使用的一样,因此,如果安装了支持NDEF的应用程序并设置为响应您的MIME类型,它将拾取您的数据。这与让Web服务器以某种MIME类型提供内容没有什么不同——需要安装一个应用程序,该应用程序支持
http
/
https
URL(或通过浏览器下载的文件)和该MIME类型

如果读取标签的设备没有必要的应用程序来读取标签上的数据/指令,它仍然会打开一个URL,将您发送到Play Store下载该应用程序


将AAR(Android应用程序记录)添加到写入NDEF格式标记的NDEF消息中。这是唯一一个可以被认为是由平台本身处理的NDEF项目,并且仅适用于支持Play Store(以及通过Play Store分发的应用程序)的设备。

首先,一般来说,我同意Commonware的观点,即它始终是一个处理NFC事件的“特殊”应用程序。然而,当我们看Android的时候,我会把AOSP的各种平台应用看作Android系统的一部分。即使并非所有设备上都可以使用它们

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

  • 浏览器:带有“http:”和“https:”方案的URI
  • 联系人和拨号器:MIME类型“text/vcard”和“text/x-vcard”用于导入联系人
  • 电子邮件:具有方案“mailto:”的URI
此外,如果没有其他应用程序处理某个标签,NFC设备应(?)具有标签应用程序,该应用程序尝试处理各种类型的标签(在用户确认后):

  • 带有方案“tel”的URI将导致调用给定号码的操作调用意图
  • 带有“sms”/“smsto”方案的URI将导致SENDTO意图开始编辑sms消息的操作
  • 其他URI应(?)在操作视图意图中转发
  • 类型为“text/x-vcard”(如果尚未处理)的MIME类型记录应在ACTION\u VIEW intents中转发
  • 标签应用程序中应显示文本RTD记录的文本消息(不是文本/*MIME类型!)。不幸的是,许多愚蠢的(!)NFC应用程序注册了文本记录,因此您通常无法访问标签应用程序
  • 标签应用程序中应显示image/*(如果Android支持image类型)类型的MIME类型记录
一些记录由NFC服务本身处理(这应该在Android上始终可用):

  • Android应用程序记录(NFC Forum外部类型,类型名为“urn:NFC:ext:Android.com:pkg”)导致一个带有URI的操作\u视图意图market://details?id=要发送的{PACKAGE_NAME}”
  • 解析类型名为“urn:NFC:nokia.com:bt”的NFC论坛外部类型以进行蓝牙连接切换
  • 从切换选择RTD记录开始并包含“application/vnd.bluetooth.ep.oob”类型MIME类型记录的NDEF消息将被解析为蓝牙连接切换