我需要在android中阅读MSISDN,但我们必须使用.c来完成它。
我打开一个插座,将RIL_REQUEST_SIM_IO发送给ril。这是日志。

D/RILC    (  106): [0004]> SIM_IO (cmd=0xB2,efid=0x6F40,path=3F007F10,1,4,30,(null),pin2=(null),aid=(null))
...
D/RILC    (  106): [0004]< SIM_IO {sw1=0x90,sw2=0x0,ffffffffffffffffffffffffffff0891684125205260f5ffffffffff}

我是否使用了正确的参数(P1=1,P2=4,P3=30)?
我怎样才能通过回复得到手机号码?
谢谢您!☺

最佳答案

你在这里有什么困惑?你想知道你对卡片说了什么吗?所有这些信息都在ISO7816-4和一些其他规范中,但这里有您所做的详细信息:
您向SIM卡发送了读取记录命令(0xB2)
你要的路径是:

3F00 -> (MF)
7F10 -> (DF_TELECOMM)
6F40 -> (MSISDN)

设置参数:
P1 (record)                   = 1  (record 1)
P2 (reference control)        = 4  (this mean use record number set in P1)
P3 (Le meaning bytes to read) = 30 (bytes)

你得到了返回成功(SW代表状态字,SW1/SW2=0x9000,表示成功)和数据(0xffffffffffffffffffffffffffffff0891684125205260f5ffffffffffffff)
分析MSISDN时签出E.164

关于android - 如何通过SIM_IO从SIM卡读取MSISDN?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15361302/

10-12 04:21