首页 > 解决方案 > 如何将 NDEF 消息从 Android 发送到另一台非 Adroid 设备

问题描述

我正在尝试将我的 Android 设备中的一个大 (10-15 kB) 字符串作为 NDEF 文本记录共享到 ACR122u 阅读器。

我使用 NFC 插件构建了一个 Phonegap 混合应用程序。该插件提供执行以下代码的nfc.share()方法:

getActivity().runOnUiThread(() -> {

        NfcAdapter nfcAdapter = NfcAdapter.getDefaultAdapter(getActivity());

        if (nfcAdapter == null) {
            callbackContext.error(STATUS_NO_NFC);
        } else if (!nfcAdapter.isNdefPushEnabled()) {
            callbackContext.error(STATUS_NDEF_PUSH_DISABLED);
        } else {
            nfcAdapter.setNdefPushMessage(p2pMessage, getActivity());
            nfcAdapter.setOnNdefPushCompleteCallback(NfcPlugin.this, getActivity());

            PluginResult result = new PluginResult(PluginResult.Status.NO_RESULT);
            result.setKeepCallback(true);
            shareTagCallback = callbackContext;
            callbackContext.sendPluginResult(result);
        }
    });

正如插件文档所说:

Function nfc.share writes an NdefMessage via peer-to-peer. This should appear as an NFC tag to another device.

但我的阅读器或任何其他 Android 设备都无法检测到任何 NDEF 数据。

ACR122u 阅读器在阅读器或点对点模式下均未检测到任何 NDEF 数据。

在尝试与 Android 设备共享数据时,它只会激活 Android Beam 屏幕。我认为在两个设备配对之前,Android Beam 会阻止共享 NDEF 消息。

我已经尝试过官方的 ACR 阅读器 SDK 示例、用于 C# 的 PC/SC 库,但都没有奏效。阅读器检测到我的 Android 设备,但不存在 NDEF 数据。

标签: javaandroidnfcndef

解决方案


推荐阅读