如何将NDEF消息从Android发送到另一个非Adroid设备

问题描述

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

我已经使用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数据。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)