【问题标题】:ACR122U - Read NFC data sent from android phoneACR122U - 读取安卓手机发送的 NFC 数据
【发布时间】:2014-05-25 12:20:00
【问题描述】:
我需要通过安卓手机将一个简单的字符串通过NFC 传输到PC。为了在 PC 中启用 NFC 功能,我插入了一个 ACR122U,以通过我在 PC 中的 C# 程序从 Android 手机读取传输的数据。
我在网上试过很多android实现比如
对于 C#,
但这些都不能正常工作。就像在简单的文本中没有得到传输一样。我尝试使用ACR122U SDK 的示例代码从上述android 实现中接收数据,但也失败了。
如果你们中的任何一位专家能提供任何参考/示例/教程/示例代码,我将非常感激传输一个简单的文本从 android NFC 设备到C# 程序 通过 ACR122u。
非常感谢 :) 我已经为此困扰了几个月,终于向各位专家寻求帮助。
附:我尽力参考了 ACR122U 的文档,但它让我无处可去
【问题讨论】:
标签:
c#
android
nfc
nfc-p2p
acr122
【解决方案1】:
您正在尝试将两个完全不相关的通信概念结合起来。
您使用的 PC 端应用程序模拟 FeliCa 智能卡(顶部带有 NDEF 抽象层)。因此,在 Android 端,您需要以读取器/写入器模式访问该模拟智能卡:
注册您的 Android 应用以接收 NFC 意图(通过清单或通过前台调度系统)。对于您的卡,我建议您使用技术NfcF + Ndef/NdfFormatable 注册 NDEF_DISCOVERED 意图或 TECH_DISCOVERED 意图。
一旦您收到这样的意图,从收到的打开一个Ndef/NdefFormatable 到模拟标签的连接中获取标签句柄并读/写 NDEF 消息。
但是,您目前在 Android 端尝试使用的是点对点模式(更具体地说是 Android Beam)。 Beam 以点对点模式在两个 NFC 设备之间交换消息,而不是在 NFC 和(模拟的)NFC 标签之间交换消息。在这种情况下,您需要将 ACR122U 置于点对点模式(ISMB-SNEP 项目包含用于此的 Java 代码)。