【问题标题】:How to emulate a nfc-tag on an android phone如何在安卓手机上模拟 nfc-tag
【发布时间】:2012-05-31 10:41:22
【问题描述】:

我有一部 android 手机(nexus s,sdk v15),它应该使用标签仿真向在 nfc-reader/writer-mode 下运行的开发板发送一个字符串。我知道这不是 android 官方支持的,所以我可以通过直接访问驱动程序来本地实现 (?)。

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

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

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

【问题讨论】:

    标签: android nfc


    【解决方案1】:

    对于运行库存 KitKat 4.4 的设备

    Android KitKat 4.4 让手机充当 NFC 的功能是 built into the operating system,因此您不再需要依赖 Cyanogenmod 或自定义 ROM。它不会让手机本身充当 Mifare Classic 标签,但我在让手机与ACR122 reader 通信方面取得了很好的效果,所以如果你能在你的设备上获得 4.4,我肯定会推荐这个选项。

    如果您想在 4.4 以下运行并愿意使用 Cyanogenmod

    load applications onto your device 可以很容易地通过 NFC 与阅读器进行通信,但是您必须运行Cyanogenmod,此功能是present from CM 9.1

    想在 Gingerbread 上运行 (旧答案)

    是的,这是可能的,并且已经为 2.3.4 发布了一个补丁来启用它,我将发布一些链接供您阅读。

    他们确实需要将 2.3.4 Gingerbread ROM 连同其他一些补丁一起刷到您的设备上,以启用卡模拟功能,所以如果您不愿意这样做,那么它们不会有太大用处,但就我知道这是让它工作的唯一方法。我自己还没有实际测试过,但用户 cmets 建议它有效。

    这里是一个描述整个过程的博客链接: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 兼容,因此如果您刷机,NFC 将无法正常工作带 GB 的设备。”

    【讨论】:

      【解决方案2】:

      如果您根设备,则可以创建一个打开卡模拟模式的应用程序。这不是太难,见例如https://stackoverflow.com/a/10506299/1202968.

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

      PS:如果您的手机正在运行 ICS,请不要将手机降级到 GB。您无法将 NFC 固件降级以再次与 GB 兼容,因此如果您使用 GB 闪存设备,NFC 将根本无法工作。

      【讨论】:

      • 对固件很感兴趣,我不知道。您是否有任何消息来源说 ICS 更新更改了固件?
      • 我曾经尝试降级自己。然后在logcat中看到Gingerbread尝试刷NFC芯片,失败了。
      • AFAIK nexus 手机已植根。所以这可以开箱即用?
      • 不,Nexus 手机没有正常发货。不过,解锁它们的引导加载程序然后根它们非常容易。
      【解决方案3】:

      【讨论】:

      • 谢谢你,我正在找它!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多