Android

时间:2016-11-18 09:31:09

标签: android nfc mifare contactless-smartcard hce

我需要创建一个模拟Mifare Ultralight卡的简单Android应用程序。当它在接收数据时在同一个缓冲区上读取和写入时,它应该只“发送”数据(从可编辑缓冲区中获取)。

但我不知道如何在读卡器和仿真卡之间进行这种通信。我已经阅读过Android HCE,但我不知道如何实现Mifare Ultralight通信(ISO 14443 A类)。

我还阅读了thisthis,当然我读到了Android HCE

我真的不知道必须如何实施沟通。 假设我已经注册并正确设置了HCE等Android服务,从Android开发者网站(带基本应用程序)我可以在读取模拟器时第一次发送数据。

但对于MIFARE Ultralight卡仿真:

1)获取缓冲区后我应该使用基本的NFC方法吗?

2)如何启用卡模拟器和阅读器之间的通信?

3)必须使用这些读写方法吗?

编辑:让我们想象一下MIFARE钱包......所以,就像我需要存储和获取卡片数据一样。在mifare4mobile网站上,他们告诉我SDK可用,但任何人都知道如何以及在何处。

谢谢!

1 个答案:

答案 0 :(得分:3)

根本不可能在Android HCE上模拟MIFARE Ultralight。 Android HCE仅允许在ISO / IEC 14443-4传输协议之上模拟基于ISO / IEC 7816-4 APDU的应用程序。

MIFARE Ultralight仅使用较低的协议层。具体而言,超轻型通信协议直接位于ISO / IEC 14443-3 A类中定义的成帧之上,而没有附加的传输协议。因此,在Android上使用HCE服务是不可能的。

这并不意味着硬件无法模拟MIFARE Ultralight协议。我已经证实至少Broadcom NFC控制器能够模拟该协议。但是,实现这一点需要对NFC堆栈进行相当广泛的修改,因此,在未经修改的现有Android设备上无法实现。

另见Emulate Mifare card with Android 4.4