为什么在 Android 上读取 Mifare Classic 卡的值与在 PC 上读取的值不同?

Why does reading Mifare Classic card on Android give different value that being read on PC?

我正在尝试开发一个 android 应用程序来读取 Mifare Classic 卡。

平板电脑:Samsung Tab Active Pro SM-T545 Android: 9 使用内置 NFC Reader

在 PC 上,我们使用 RFIDeas reader,我得到如下信息:

3 个原始字节读取

使用以下代码格式化后类似于:

String.Format("{0:X2}", Id[i])

0000000000A92ED8

我在使用 pcProxConfig 实用程序读取卡时得到相同的值。我们在代码中使用 pcProxDLLAPI 读取卡片。

我在 Android 上尝试了一堆不同的应用程序以及一些带有我自己的代码的库,它们都 return 相同的值,这与我得到的值不同如上所述在 PC 上读取卡片。

我在 Android 设备上获得的值类似于:

4 个原始字节读取

它给出了类似 7F:4F:42:02

的格式化值

所以我们在 Android 上读取的字节与同一张卡的 PC 上读取的字节不同,这导致了不同的值。

当我在 Android 上使用 NFC 工具应用程序扫描同一张卡时,它显示:

标签类型:ISO 14443-4 NXP MIFARE Classic 1k

可用技术:IsoDep、NfcA、MifareClassic、NdefFormatable

谁能告诉我为什么会这样,我怎样才能获得与 PC 上相同的值?

感谢您的宝贵时间。

我刚刚解决了这个问题,所以我将其传递出去,希望它能为其他人节省一些时间。

RFIDeas reader 已配置为去除前导和尾随奇偶校验位。一旦我配置 reader 将它们留在 Android 和 PC 刷卡数据匹配中。