【问题标题】:How could you check if an android device supports SNEP or Android's Ndef Push Protocol?如何检查安卓设备是否支持 SNEP 或安卓的 Ndef 推送协议?
【发布时间】:2013-03-12 01:13:00
【问题描述】:

你可以在 Android 内部找到这个documentation:

要使 NDEF 推送正常运行,其他 NFC 设备必须支持 NFC 论坛的 SNEP(简单 Ndef 交换协议)或 Android 的“com.android.npp”(Ndef 推送协议)。这在 Gingerbread 级别的 Android NFC 设备上是可选的,但 SNEP 在 Ice-Cream-Sandwich 及其他设备上是强制性的。

您如何检查设备是否能够与其他设备进行 NFC P2P 通信?因为我们尝试过测试各种示例 NFC P2P 代码,但均未成功! (NFC 标签运行良好)。

目前的情况是两台设备都发出熟悉的 NFC 嗡嗡声,但似乎没有交换数据。

仅供参考的设备是 Sony Xperia Sole/SolaLG Optimus 4X HD,它们都分别更新了 Android 版本 4.0.4 和 4.0.3。

另请注意:开发是在 Gingerbread 版本,Android API 版本 10

【问题讨论】:

    标签: android nfc ndef nfc-p2p


    【解决方案1】:

    我不知道如何检查,但在我的记忆中,每台 Android > 4.0 的设备都可以执行 SNEP。

    根据经验,当两台设备都发出“NFC 声音”时,是在他们看到对方的时候,但初始化不正确,在这种情况下,数据没有传输。你能发布一些你测试过的代码示例吗?

    请注意,我不是安卓开发者,但我研究过 NFC 的协议,所以我的回答必须谨慎。

    【讨论】:

      【解决方案2】:

      Per Android documentation:

      接收传送数据的 NFC 设备必须支持 com.android.npp NDEF 推送协议或 NFC 论坛的 SNEP(简单 NDEF 交换协议)。 com.android.npp 协议是必需的 API 级别 9 (Android 2.3) 到 API 级别 13 (Android 3.2) 的设备。 com.android.npp 和 SNEP 在 API 级别 14(Android 4.0) 及更高版本。

      您可以使用API​​级别来检查:

      if api level >= 14, it's SNEP;    
      else if api level >= 9, it's NPP;     
      else P2P not supported.
      

      【讨论】:

        猜你喜欢
        • 2011-11-02
        • 2013-04-04
        • 2013-01-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多