如何在Android中读取智能卡ATR?

如何在Android中读取智能卡ATR?,android,smartcard,apdu,Android,Smartcard,Apdu,我有一个1443 B型卡,我可以通过发送文件id为0x2F01的SELECT命令读取ATR,然后发送READBINARY命令 00b00000 这是回应: 4301F84703F741E07F6608020205F002050F09000 但是为什么命令00b0810000不起作用呢?。根据ISO/IEC 7816-4,该命令用于读取5位P1xP2作为文件短ID(00001)的EF,Le=0x00指定需要读取文件的所有字节。 我错过什么了吗?如何读取具有短ID的文件 关于返回的ATR,其定义见S

我有一个1443 B型卡,我可以通过发送文件id为0x2F01的SELECT命令读取ATR,然后发送READBINARY命令

00b00000

这是回应:
4301F84703F741E07F6608020205F002050F09000

但是为什么命令
00b0810000
不起作用呢?。根据ISO/IEC 7816-4,该命令用于读取5位P1xP2作为文件短ID(00001)的EF,Le=0x00指定需要读取文件的所有字节。 我错过什么了吗?如何读取具有短ID的文件

关于返回的ATR,其定义见SC17_N5781_ISO_IEC_FDIS_7816-62_标识。它表明:

标签43-->卡服务数据
长度01-->1字节
值F8-->参见ISO/IEC 7816-4 12.1.1.5

标签47-->卡功能
长度03-->3字节
值F7 41 E0-->参见ISO/IEC 7816-4 12.1.1.9

标签7F66-->扩展长度APDU
长度08-->8字节
值-->参见ISO/IEC 7816-4 12.7.1
标签02
长度02
值05 F0
标签02
长度02
值05 F0

但我找不到上面提到的7816-4第12节。因此,虽然我现在可以成功读取ATR,但我无法澄清返回ATR中值的定义。本标准是否已发布?

如果您有ISO/IEC 14443 A型卡,则ATS将包含以其他方式存储在ATR中的大部分信息。在这种情况下,不太可能为卡定义EF.ATR-此文件的可用性不是强制性的

对于ISO/IEC 14443 B类卡,更可能存在EF.ATR,因为ATS将丢失


如果存在EF.ATR,则可以使用按文件ID选择(2F01)来选择它。当您尝试使用问题中的READ binary命令时,此文件可能具有短文件标识符0_0001(5位二进制),但建议尝试使用完整的文件ID以确保。然后,您只需使用read BINARY读取文件,或者在无法读取文件时获取数据。

与此同时,Android 9提供了。在使用上的
getUiccReader
获取读卡器后,可以打开会话。有一个方法
getATR

我已经编辑了我的问题。你能看到它吗@MaartenBodewes@Maarten你能帮我做这个吗