NFC UID键盘仿真器/Android

NFC UID键盘仿真器/Android,android,cordova,phonegap-plugins,nfc,Android,Cordova,Phonegap Plugins,Nfc,我正在尝试使用Android 4.4和phonegap NFC主插件从NFC标签获取UID。返回一个十六进制字符串。 但是当我用Usb Nfc键盘模拟器读取相同的标签时(如:),结果是一个十进制数。好啊现在我正在尝试将dec转换为十六进制,但代码不匹配。 你能帮我吗? 谢谢 编辑: 例如,对于同一标记,Android返回ID 04a9dba2853280,键盘模拟器返回3685287048。我试图通过删除一些字符来转换十六进制,但没有。我不明白这种转换的逻辑。该Id是唯一的,我认为这只是一个转换

我正在尝试使用Android 4.4和phonegap NFC主插件从NFC标签获取UID。返回一个十六进制字符串。 但是当我用Usb Nfc键盘模拟器读取相同的标签时(如:),结果是一个十进制数。好啊现在我正在尝试将dec转换为十六进制,但代码不匹配。 你能帮我吗? 谢谢

编辑:
例如,对于同一标记,Android返回ID 04a9dba2853280,键盘模拟器返回3685287048。我试图通过删除一些字符来转换十六进制,但没有。我不明白这种转换的逻辑。该Id是唯一的,我认为这只是一个转换问题。

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

对于具有7字节UID的标签(在您的示例中为
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

你买的阅读器是为Mifare芯片设计的,现在所有标签都有一个十六进制的登录器


它可以轻松读取NFC标签的唯一ID(UID),并自动将其写入光标在显示屏上的位置,还可以“按”enter键。因此,它可以用于快速、安全地访问PC/手机/平板电脑。

使用Android时,从同一标记中可以获得多少十进制数,以及读取多少UID?例如,Android返回ID 04a9dba2853280,键盘模拟器返回3685287048以获取同一标记。我试图通过删除一些字符来转换十六进制,但没有。我不明白这种转换的逻辑。该Id是唯一的,我认为只有转换问题。谢谢!非常详尽。但在这种情况下,将3685287048转换为04A9DBA2853280Correct是不可能的,正如我在上面所写的:您的键盘模拟读取器在级联级别1后停止,因此UID的其余部分无法通过该读取器访问(除非有任何配置选项来激活它…)。实际上,这意味着如果你使用读卡器,你只能看到UID的前三个字节。好的,非常感谢。我可以通过将十六进制的Android代码转换为键盘模拟的十进制来解决这个问题。在这种情况下,我可以比较值。非常感谢。