如何在安卓手机上模拟 nfc 标签



我有一部安卓手机(nexus s,sdk v15),它将使用标签仿真将字符串发送到以nfc-reader/writer-mode运行的开发板。我知道 android 不正式支持此功能,因此我可以通过直接访问驱动程序(?

是否有任何人以前这样做过的例子,或者有一个应用程序可以这样做(最好是开源的?

我在谷歌上找到了一些东西,通常建议不要这样做,或者人们谈论如何可能或他们如何(非常普遍地)做到这一点,但我找不到任何代码或精确的建议。

我不想访问安全元素或执行任何需要供应商/提供商批准的智能卡操作。我只想转移字符串。我也知道这可以通过 android api 方法通过 p2p 来完成,但这不适用于董事会,所以我尝试这种方法。

对于运行库存的设备 奇巧 4.4

在Android KitKat 4.4中,将手机作为NFC的功能内置于操作系统中,因此您不再需要依赖Cyanogenmod或自定义ROM。它本身不会让手机充当Mifare Classic标签,但是我在让我的手机与ACR122读卡器通信方面取得了很好的效果,所以如果你可以在你的设备上获得4.4,我肯定会推荐这个选项。

如果你想运行在4.4以下,并且愿意使用氰基莫德

可以将应用程序加载到您的设备上,并让它们通过NFC非常轻松地与阅读器通信,但是您必须运行Cyanogenmod,此功能从CM 9.1开始提供。

想在姜饼上奔跑 (旧答案)

是的,这是可能的,并且

已经为2.3.4提供了一个补丁来启用它,我将发布一些链接供您阅读。

它们确实需要将 2.3.4 姜饼 ROM 以及其他一些补丁刷到您的设备以启用卡仿真功能,因此如果您不愿意这样做,那么它们不会有太大用处,但据我所知,这是让它工作的唯一方法。我自己还没有真正测试过这个,但用户评论表明它可以工作。

以下是描述整个过程的博客链接:http://techshek4u.blogspot.co.uk/2012/01/applying-card-emulation-patch-to_03.html

以下是原始论坛帖子的链接,其中包含 2.3.4 的补丁以启用它:
http://forum.xda-developers.com/showthread.php?t=1281946

还有一个指向原始讨论的链接,其中各种开发人员正试图让它工作,具体取决于您对 Android 和 NFC 的技术知识,这可能或多或少有趣:https://groups.google.com/forum/#!msg/android-developers/1fw1qfFqpGc/6dlzvTqExN4J

注意:根据NFCGuy的回答"如果手机运行ICS,请不要费心将手机降级到GB。您无法降级NFC固件以再次与GB兼容,因此,如果您使用GB刷新设备,NFC将根本无法正常工作。

如果您植根设备,则可以创建一个打开卡仿真模式的应用程序。这并不太难,请参阅例如 https://stackoverflow.com/a/10506299/1202968。

但是,卡仿真完全由安全元件处理。您的应用无权访问正在传输的数据。控制它的唯一方法是在安全元件上创建并安装 Java Card 小程序。但是,为了能够做到这一点,您需要访问只有Google知道的秘密身份验证密钥。

PS:如果手机运行的是ICS,请不要为将手机降级到GB而烦恼。您无法降级NFC固件以再次与GB兼容,因此,如果您使用GB刷新设备,NFC将根本无法正常工作。

根据 http://developer.android.com/guide/topics/connectivity/nfc/hce.html,Android现在正式支持主机卡仿真

最新更新