问题描述
我正在尝试从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 (将#修改为@)