java - 如何将 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 数据。
解决方案
推荐阅读
- arduino - 如何在 Arduino GSM 库中自动转换代码
- sorting - 我们如何使用递归将整数序列插入二叉搜索树?
- go - Golang用任务队列排队一个方法
- laravel - Laravel mutator 没有设置新值
- c++ - 如何使此代码与 char 而不是 string 一起使用?
- docker - 如何为 DOCKERFILE 中的任何会话 cookie 设置“安全”和“httpOnly”属性
- python - 给定另一个df中的特定条件,将熊猫df的某些行中的值替换为NaN
- python - Dm 每个有角色的人 discord.py
- node.js - 使用 lowdb 会导致 ERR_REQUIRE_ESM
- javascript - 动态更新变量名