NFC UID键盘模拟器/ Android

时间:2014-03-26 12:07:27

标签: android cordova phonegap-plugins nfc

我正在尝试使用Android 4.4使用phonegap和phonegap-nfc-master插件从NFC标签获取UID。这会返回一个十六进制字符串。 但是当我用Usb Nfc键盘模拟器(如:http://www.shopnfc.it/gb/nfc-readers-writers/40-usb-nfc-loginer-keyboard-emulator.html)读取相同的标签时,结果是十进制数。好。现在我正在尝试将dec转换为十六进制,但代码不匹配。 你能帮我吗? 感谢

修改 例如,Android返回ID 04a9dba2853280,键盘仿真器返回3685287048用于相同的标记。我试图通过删除一些字符来转换十六进制,但不是。我不理解这种转换的逻辑。该ID是唯一的,我认为只有转换问题。

2 个答案:

答案 0 :(得分:1)

您收到的十进制数(3685287048)是十六进制表示的DBA90488。因此,键盘仿真阅读器为您提供了标签UID的第一个级联级别部分(参见ISO / IEC 14443-3以供参考)。

对于具有7字节UID zzyyxxwwvvuutt的标记(在您的情况下为04A9DBA2853280),ISO 14443-3防冲突必须级联级别。 cascase级别1中的UID为88zzyyxx(在您的情况下为8804A9DB)。 88是级联标记,用于区分(即产生4字节UID(仅使用单个级联级别)和具有较长UID(7/10字节)的标记之间的冲突)。级联级别2中的UID部分则为wwvvuutt(在您的情况下为A2853280)。

当读取器在级联级别1之后停止枚举过程时,它仅检测UID的第一部分(包括级联标记):88zzyyxx。这转换为十进制数字:

xx_h * 2^24 + yy_h * 2^16 + zz_h * 2^8 + 88_h

在你的情况下:

DB_h * 2^24 + A9_h * 2^16 + 04_h * 2^8 + 88_h = 
 219 * 2^24 +  169 * 2^16 +    4 * 2^8 +  136 = 
 3674210304 +    11075584 +       1024 +  136 = 
                                   3685287048

答案 1 :(得分:1)

您购买的读卡器是专为Mifare芯片设计的,现在所有标签都有一个登录器,带有十六进制

http://www.shopnfc.it/en/nfc-readers-writers/61-nfc-loginer.html

它可以轻松读取NFC标签的唯一ID(UID),并自动将其写在显示屏上光标所在的位置,然后按下"也进入。因此,它可用于快速安全地访问PC /移动设备/平板电脑。