我正在开发一个具有 minSdk=14 和 targetSdk=17 的 Android 应用程序。我希望应用程序使用 Android Beam 将纯文本字符串从手机发送到 NFC 阅读器。我还没有阅读器,并且一直在尝试将纯文本数据从一台 Android 设备传输到另一台设备(我有一台运行 4.2.2 的 Nexus 4 和一台运行 4.0.3 的 LG Optimus L5)。
我找到了两种发送文本数据的方法,第一种是使用 TNF_WELL_KNOWN 和 RTD_TEXT 作为类型,另一种是使用 TNF_MIME_MEDIA 和 text/plain 作为类型。
从 L5 发送到 N4 后,我看到的只是在收集的新标签下是“text/plain”。我还尝试使用 NXP TagWriter 读取 Beam 数据,这是我在使用 RTD_TEXT http://i.imgur.com/0qbAwld.png时得到的,这是在使用 text/plain MIME http://i.imgur 时得到的。 com/bz9RxuI.png。
这是使用 RTD_TEXT 时的代码
NdefRecord[] records = {
new NdefRecord(NdefRecord.TNF_WELL_KNOWN,
NdefRecord.RTD_TEXT,
new byte[0],
"testing".getBytes())
};
NdefMessage msg = new NdefMessage(records);
adapter.setNdefPushMessage(msg, this);
这是使用 text/plain MIME 时的代码
NdefRecord[] records = {
new NdefRecord(NdefRecord.TNF_MIME_MEDIA,
"text/plain".getBytes(),
new byte[0],
"testing".getBytes())
};
NdefMessage msg = new NdefMessage(records);
adapter.setNdefPushMessage(msg, this);
如何正确创建 NdefRecord?还是仅在另一部手机上未显示有效负载时才按预期工作?发送纯文本数据时首选这两种方法(RTD_TEXT 和 MIME)中的哪一种?