据我目前的理解,NFC手机将充当NFC读取器,从NFC标签读取数据。那么我的问题是,我们能否反过来做?我们能否使Android NFC手机表现为一个标签,供NFC读取器获取数据吗?
感谢您的帮助。
目前来说,我会回答“不行”或“难度较大”,但随着 Android NFC API 的发展,这种情况可能会改变。
NFC互动有三种模式:
读写模式: 手机读取标签并写入它们。它不是模拟卡片而是NFC读写设备。因此,在此模式下无法模拟标签。
点对点模式: 手机可以读取并返回ndef消息。如果标签阅读器支持点对点模式,则手机可能可以充当标签。然而,我不确定android是否在LLCP协议(NFC逻辑链路协议)之上使用自己的协议,这将防止大多数读卡器将手机视为NFC标签。
卡片模拟模式:手机使用安全元件来模拟智能卡或其他非接触式设备。我不确定这是否已经推出,但可能效果很好。但是,使用安全元件可能需要硬件供应商或其他人验证您的应用程序/授权其访问安全元件。这不像创建常规NFC android应用程序那样简单。
更多细节请参见: http://www.mail-archive.com/android-developers@googlegroups.com/msg152222.html
一个真正的问题是:为什么您要模拟一个简单的旧NFC标签?我没有考虑到的应用吗?通常,您需要模拟像交通卡、访问密钥或信用卡这样的东西,这将需要使用安全元件(我想是这样,但不确定)。
我们能否将安卓NFC设备作为标签,供其他NFC读取器获取数据?
Nexus S支持点对点模式,正如其名称所示,它使一部手机充当标签,另一部手机可以读取。今年有一个非常好的Google I/O会议关于NFC的讲座。如果您对NFC感兴趣,我建议观看它。
检查 Android 4.4 中可用的基于主机的卡模拟(HCE)NFC 模式。
API 指南: https://developer.android.com/guide/topics/connectivity/nfc/hce.html
可以使Android设备模拟NFC标签,这种行为被称为卡片模拟。
我自己没有验证过,但看起来人们成功将隐藏的代码再次包含到Android中。 他们似乎能够模拟Mifare Classic卡(iso-14443)。 我很快会亲自测试这个,它看起来非常有趣。
如果你想为商业或免费应用程序做这件事,你会遇到困难,因为你的用户不会喜欢更改内核以支持你的应用程序。
更新:
有一个简单的技巧可以让你的手机模拟一张票:
你可以获得一个NFC贴纸并将其放在手机上或内部。这样,你就能在任何时候读写它,其他设备也可以读写它。
这只是我想到的一个主意,当然从来没有见过有人使用过 ;)
是的,请查看NFCManager中的NDEF Push - 在Android 4中,您甚至可以创建NDEFMessage来推送到交互发生时的活动设备。
卡模拟? 没有卡模拟的API支持 在进行卡模拟时没有一致的用户体验和吸引人的故事
如果您想让一个带电的NFC设备假装成被动设备(例如标签)...不确定它的效果如何,但安卓应用程序NFCClassic声称可以记录标签内容,然后允许激活标签并出现为复制的标签对于NFC读取器。创建了一个记录标签的库。
对于 NFC 技术来说很简单。但是对于谷歌来说,它不支持它作为 Google 钱包。