NFC读卡器<->安卓通信和安卓监听器

3

我有一些有关NFC读卡器和Android手机之间通信的问题。

第一个问题是关于Android / NFC读卡器模式: 如何最好地从NFC读卡器(ACR122U)传递唯一标识符到Android设备?ACR122U可以使用点对点、卡模拟或读写器模式吗?哪种模式是可行的?如果您需要双向通信,最佳模式是什么?

第二个问题与Android设备中的监听器有关: Android读卡器如何触发Android应用程序?当您将手机放在NFC读卡器上时,您需要将Android应用程序置于前台还是需要编写NFC监听器等,而您的应用程序正在后台运行?

非常感谢。

1个回答

3

如何将唯一标识符从NFC读卡器(ACR122U)传递到Android设备?

这取决于您想要实现什么。

  • 在读卡器/写入器模式下使用ACR122U将基本上限制您只能使用Android 4.4及更高版本(因为Android HCE - 用于将手机置于基于主机的卡模拟模式中 - 仅支持从4.4开始)。
  • 点对点模式可行,但实际上会将您限制为向单个方向发送一个数据包(或一条消息)。
  • 在卡模拟模式下使用ACR122U将允许您执行真正的双向通信(即向两个方向发送多个数据包)。

请参见this answer以获取更多文献列表。

哪些模式是可能的?

所有三种模式都是可能的,但给您不同程度的自由。

如果您需要双向通信,最佳模式是什么?

如上所述,使用ACR122U卡模拟模式和手机读写器模式将允许在所有Android版本上进行双向通信。在这种情况下,手机扮演询问者(在命令-响应协议中)的角色。

如果您只想/需要支持Android 4.4及更高版本,则可以使用手机HCE(基于主机的卡模拟)模式和ACR122U读写器模式。

当您将手机放在NFC读卡器上时,您需要将Android应用程序置于前台还是需要编写NFC侦听器或其他内容,同时您的应用程序正在后台运行?

如果您正在使用Android HCE(将手机作为模拟卡片):在这种情况下,通信由后台服务处理。设备上不需要用户界面。如果您想在扫描ACR122U时启动用户界面,则建议您继续使用Android读写器/写入器或点对点模式(尽管您也可以通过HCE服务启动UI)。
如果您正在使用Android读写器/写入器模式:您需要一个在前台运行的应用程序来与NFC标签/智能卡/模拟卡进行通信。但是,该应用程序可以在检测到标签时自动启动。您将使用匹配标签技术或更好地匹配存储在标签上的NDEF记录的意图过滤器。有关详细信息,请参见this

你知道是否有使用ACR122u进行卡模拟的示例吗? - S.Pols
请查看链接中的帖子,其中包含更多的相关文献列表。*请参阅此答案*。 - Michael Roland
@MichaelRoland “然而,应用程序可以在检测到标签时自动启动”,- 我们该如何做到这一点?你能分享一些示例吗? - Vitaliy L
@MichaelRoland 请查看:http://stackoverflow.com/questions/37188472/nfc-card-emulation-with-close-application - Vitaliy L
@MichaelRoland,这是否只能通过设备完成?而不是使用ACR122U。您知道如何从我的设备模拟NFC标签的一些信息吗? - Vitaliy L
显示剩余5条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接