[英]MSISDN : Is it a SIM Card Data? Why all The Provided Function (from Blackberry and Android) to fetch MSISDN not reliable?
[英]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.