首页 > 解决方案 > nativescript-nfc rfid阅读器插件唯一ID问题

问题描述

我使用 nfc 阅读器,并且能够获取标签的唯一 ID。当我读取标签时,id 被称为:

id: [ -52, 22, -61, -67, 80, 1, 4, -32, [长度]: 8 ]

我怎样才能得到十六进制的?它应该被称为 CC:16:C3:BD:50:01:04:E0。这也是我将拥有数据库条目的方式。所以我找回身份证的方式对我来说毫无用处。

我将不胜感激任何有用的答案。先感谢您。

标签: uniquenfcuniqueidentifierreader

解决方案


字节的范围是 -128 到 127

例如对于 Java https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html

“byte:byte数据类型是一个8位有符号二进制补码整数,最小值为-128,最大值为127(含)。”

您只需要将其转换为十六进制字符串显示。

通常根据 ISO/IEC 14443-3,UID 是一个 7 字节的数字,字节 4 是校验字节的一部分

我不知道如何在 Nativescript 中将字节转换为字符串,但在 Java 中你可以做到


StringBuilder Uid = new StringBuilder();

for (int i = 0; i < result.length; i++) {
                        // byte 4 is a check byte
                        if (i == 3) continue;
                        Uid.append(String.format("%02X ", result[i]));
                    }

虽然不完全需要跳过检查字节来为您提供唯一 ID,但此代码可以做到这一点。

对于 JavaScript如何将十六进制字符串转换为字节数组,以及十六进制字符串中的字节数组?应该通过类似的迭代数组来提供答案,将每个字节转换为十六进制字符串


推荐阅读