簡體   English   中英

如何通過SIM_IO從SIM卡讀取MSISDN?

[英]How to read MSISDN from sim card by SIM_IO?

我需要在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)?

以及如何通過響應獲取手機號碼?

謝謝!☺

您在這里有什么困惑? 您想知道您告訴卡片的內容嗎? 所有這些信息都在ISO 7816-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表示成功)和數據(0xffffffffffffffffffffffffffffff0891684125205260f5ffffffffff)

在解析MSISDN時檢出E.164

數據(0xffffffffffffffffffffffffffff0891684125205260f5ffffffffff)是它包含MSISDN

---- 08 =表示撥號的長度

---- 91 =表示MSISDN國際撥號

其余(684125205260f5)的值必須與每個1字節並排交換。 例如68交換86、41交換14 ...等等,然后您將得到MSISDNnumber。

如果以后有幫助:可以在TS 51.011上找到編碼。 文件稱為EF_MSISDN。 它的標識符是6F40。

MSISDN之前是其長度,然后是TON / NPI。 它也是BCD倒排格式

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM