我测试了几个应用程序,例如触发Android,并注意到如果读取标签的设备没有所需的应用程序来读取标签上的数据/指令,它仍会打开一个URL,将您发送到Play商店以下载该应用程序.
因此必须有一种方法来保存所有/部分支持NFC的手机可读的数据.简单地说,我想为Android创建一个applcation,它将数据写入NFC标签,并且可以通过随机的NFC手机读取/打开/执行数据.
那么是否可以准备一个NFC标签,在读取设备上触发某些操作而无需特定的应用程序?我可以使用我的应用程序在NFC标签上写入什么类型的数据来实现此目的?
首先,总的来说,我同意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意图中转发.
>文本RTD记录的文本消息(不是text / * MIME类型!)应显示在Tag应用程序中.不幸的是,许多愚蠢的(!)NFC应用程序注册了文本记录,因此您通常无法访问Tag应用程序.
>类型为image / *的MIME类型记录(如果Android支持图像类型)应显示在Tag应用程序中.
有些记录由NFC服务本身处理(这应始终在Android上提供):
> Android应用程序记录(NFC论坛外部类型,类型名称为“urn:nfc:ext:android.com:pkg”)会导致ACTION_VIEW意图发送URI“market:// details?id = {PACKAGE_NAME}”.>解析类型名称为“urn:nfc:nokia.com:bt”的NFC论坛外部类型以进行蓝牙连接切换.>解析以切换选择RTD记录开始并包含类型为“application / vnd.bluetooth.ep.oob”的MIME类型记录的NDEF消息以进行蓝牙连接切换.