- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我刚开始使用 Android NFC 进行编码,我已经成功地将 NDEF 数据读写到 mifare classic 标签中。问题是当应用程序从 ndef 记录读取有效负载时,它总是在文本的开头包含字符“*en”。我认为它是语言字符,但是没有该字符如何获取真实的短信?
这是应用程序从标签中读取的屏幕截图,实际文本是“Hello World”
这是要阅读的代码
@Override
public void onNewIntent(Intent intent) {
Log.i("Foreground dispatch", "Discovered tag with intent: " + intent);
// mText.setText("Discovered tag NDEF " + ++mCount + " with intent: " + intent);
if (NfcAdapter.ACTION_NDEF_DISCOVERED.equals(intent.getAction())) {
Parcelable[] rawMsgs = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES);
if (rawMsgs != null) {
NdefMessage[] msgs = new NdefMessage[rawMsgs.length];
for (int i = 0; i < rawMsgs.length; i++) {
msgs[i] = (NdefMessage) rawMsgs[i];
}
NdefMessage msg = msgs[0];
try {
mText.setText(new String(msg.getRecords()[0].getPayload(), "UTF-8"));
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
最佳答案
您看到的是转换为 UTF8 的 NDef 文本记录的原始数据。
NDef 文本记录是这样构建的:
第一个字节:控制字节
Bit 7: 0: The text is encoded in UTF-8 1: The text is encoded in UTF16
Bit 6: RFU (MUST be set to zero)
Bit 5..0: The length of the IANA language code.
后面是语言代码,按照 RFC 3066 中的定义存储在 US-ASCII(在您的情况下为 en)中。语言代码的长度在控制字节中给出。
然后是控制字节第 7 位指定格式的文本。
空方 block 字符来自您将原始数据转换为 UTF-8。我几乎可以肯定您的控制字节的数值为 2。由于该数值没有可打印字符,因此它会被 unicode 集中的不可打印占位符字符替换。这通常显示为一个空方 block 。
关于android - Android NDEF 记录负载中的奇怪字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7917567/
有没有办法再次将 NDEF 格式的 NFC 标签转换为 Raw 格式,即使其成为非 NDEF。 提前致谢 最佳答案 在某些情况下这是可能的。 NFC 论坛有 4 种标准化 NFC 标签,它们可以包含
已经阅读了一些与我类似的问题 - 如果我错过了解决我的困境的方法,我只能道歉,但我真的无法解决这个问题! 我已经设法让我的 nfc Activity 正常工作 - 点击标签会启动我的应用程序的正确 A
我编写了一个小函数,将原始数据格式化为 NDEF,然后将其写入标签。 该函数的主要部分工作没有任何问题,唯一不工作的是,如果扇区为空,它会不断将 0xFF 而不是 0x00 写入扇区末尾。 代码: i
我有一个带有 ndef 文本记录的 nfc 标签。正文为 Paris/London 任何拥有 nfc 标签读取应用程序的人都可以像这样读取它。 我应该如何加密/编码该文本,以便人类无法阅读?我希望我的
我正在使用 Raspberry Pi 和 RFID-RC522 板开发一个 Python 项目。我使用 NXP NTAG213 作为 NFC 标签。我现在的计划是在标签上存储链接。我可以毫无问题地读取
我已经将 NDEF 文本记录 - “poo”(只是测试)写入了 NFC 论坛 2 类标签,我需要一些帮助来了解具体写入的内容以及格式。发送到标签的命令包含四个数组: new Uint8Array([1
我正在为 NFC 设备实现一个 Android 应用程序。我在两个不同的 Android 设备上使用 Ndef、NfcV 和 NdefFormatable 标签:Samsung Galaxy SII
这是我第一次使用基于 NFC 的功能。我遇到了有关编码 NDEF 消息的问题。 我们尝试了 2 个应用程序将数据写入 NFC 标签,名称是 NDEF 和 TagWriter。我正在将我的数据写入文本格
我正在编写基于 NFC 的应用程序,该应用程序将使用 Url 扫描 NFC 标签。扫描标签后,应用程序应从数据库中检索信息并将其显示在 ListView 中。 当我扫描 NFC 标签时出现错误。 E
我想在 while() 循环中写入不同的 NDEF 消息。 最后编辑:似乎微 Controller 不能处理数据那么快,所以我的问题无法解决。 //ndef.connect(); ndef.write
在 Android 上,一旦 NFC 标签靠近手机,系统就会向我的应用程序发送一个 Intent ,其中包含一个允许我读取和写入该标签的 NDEF 消息的对象。具体来说,我可以随时写入这个标签,而它仍
我刚开始使用 Android NFC 进行编码,我已经成功地将 NDEF 数据读写到 mifare classic 标签中。问题是当应用程序从 ndef 记录读取有效负载时,它总是在文本的开头包含字符
我一直在寻找 NDEF 格式和普通 NFC 标签之间的差异。 让我们考虑 1k Mifare 经典标签。 它们有 16 个扇区和 4 个块。 将标签格式化为 NDEF 后, 标签上发生了什么“内部”变
我正在寻找与 NDEF 兼容并为大多数运行 Android 4.x 的设备所支持的 NFC 芯片,不知何故我只能找到很少的相关信息。谁能说出制造商/芯片型号或提供一些有用的链接? 最佳答案 参见 ht
我多次阅读 Android 开发者网站上关于 NFC 标签分发器 (http://developer.android.com/guide/topics/connectivity/nfc/index.h
我正在使用 setNdefPushMessageCallback 通过 Android Beam (TM) 从一台 Android 设备向另一台设备发送 NDEF 消息(文本/纯文本)。在 onRes
我正在尝试写入和读取 NDEFMessage 中的多个记录。我的代码在这里对吗?此外,当我读取标签时,我的进程会自行终止。我不确定我哪里出错了.. 写作部分: private NdefMessage
我正在使用 AS3953 来模拟 NFC 标签,并且已经能够使用三星 S4 或带有 Broadcom 芯片组的 Fame 读出简单的 NDEF 消息,现在我正在尝试让它与使用 NXP PN544 Co
我正在使用 NXP 提供的 NDEF 标签和 NFC 标签编写器应用程序,但在索尼手机应用程序中显示内存为 524 字节,但在 MOTO 手机中显示为 52 字节内存。我花了很多时间寻找解决方案,但没
我正在尝试通过扫描 NFC 标签来启动我的应用程序。我有两个标签要测试, 一个(让我们称之为“标签 A”)具有一种 URI 数据类型“http://panasonic.net”和 另一个(我们称之为“
我是一名优秀的程序员,十分优秀!