【问题标题】:Is it possible to use Android Beam between an android device and another NFC device?是否可以在 android 设备和另一个 NFC 设备之间使用 Android Beam?
【发布时间】:2012-06-04 12:32:51
【问题描述】:

我想在我的 Android 应用和支持 NFC 的信息亭之间实现 NFC 通信。我已经阅读了documentation 并且我了解推送数据可以通过两种方式完成:

  • 通过前台 NDEF 推送 API 级别 10 到 13
  • 通过 API 级别 14 的 Android Beam

我想我可以通过第一个解决方案做我想做的事,但我想知道是否可以在 Android 设备和非 Android 设备之间使用 Android Beam?

感谢您的帮助,

罗曼

【问题讨论】:

    标签: android nfc android-beam


    【解决方案1】:

    我为一个大学项目研究了这个。

    首先请注意NFC操作有3种模式{卡读/写、标签仿真和P2P通信}。 Android支持卡片读写和P2P通信。

    通过 P2P 与非 Android 设备通信非常复杂,因为您必须使用基于 LLCP(逻辑链路控制协议)的 NPP(Ndef 推送协议)。您的非 android 平台需要实现 LLCP 才能进行通信。我不确定这是否已经为 NFC 完成。有关 NPP/LLCP 实施的信息可以找到here

    下一种方法是使用卡读/写模式与运行在卡模拟模式下的非 Android 设备进行通信。通过这种方式,您可以将 APDU 发送到仿真标签以发送和接收数据。我在我的项目中使用 BlackBerry 反向执行了这种方法。黑莓支持卡模拟,所以我使用非 Android 设备 (ACR122U) 将 APDU 发送到黑莓。

    虽然第一种方法 (P2P) 显然是理想的方法,但第二种方法可能更容易实施。无论如何,它在我的应用程序中运行良好,我创建了一个通过 NFC 接受付款的系统。

    请注意,ACR122U 对 NFC 标签仿真没有很好的支持,因此不适合您。 LibNFC 网站是寻找支持标签模拟的设备的良好开端。

    我现在完成了这个项目,使用 ACR122U 设备效果很好。如果您在第二种方法上需要任何帮助,请询问。

    【讨论】:

    • @conor 根据你的说法,我可以在我的 Android 设备与黑莓设备之间创建通信,只需要两者都必须支持 NFC 技术。
    【解决方案2】:

    虽然 API 10 到 13 和 APi 14 之间的函数调用不同,但实际底层协议几乎相同。在这两种情况下,NFC 点对点通信都是使用 LLCP 完成的。在 API 10 到 13 中,实际使用的数据传输协议是 NPP。在 API 14 中,SNEP 被添加到其中,但当其他设备不支持 SNEP 时,它将回退到 NPP。

    因此,当您的非 Android 设备通过 LLCP 实现 SNEP 和/或 NPP 时,它可以将数据传输到 Android NFC 设备并从其接收数据。存在多种用于读卡器设备的 SNEP 和 LLCP 实现,例如参见 https://github.com/grundid/nfctools

    【讨论】:

      【解决方案3】:

      见下文 问题 28014:启用真正的 NFC p2p 通信和禁用“Touch to Beam”UI 的选项
      https://code.google.com/p/android/issues/detail?id=28014 Android 点对点根本不起作用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-10-21
        • 2014-05-29
        • 1970-01-01
        • 2023-03-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多