1

AndroidでMSISDNを読み取る必要がありますが、.cを使用して終了する必要があります。ソケットを開いRIL_REQUEST_SIM_IOてリルに送ります。これがログです。

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)を使用しましたか?

そして、どうすれば応答によって携帯電話番号を取得できますか?

ありがとうございます!☺</ p>

4

3 に答える 3

2

ここであなたの混乱は何ですか?カードに何を伝えたか知りたいですか?この情報はすべて 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 を取得しました) とデータ (0xffffffffffffffffffffffffff0891684125205260f5ffffffffff) が返されました。

MSISDNの解析でE.164を確認してください。

于 2013-03-12T12:59:48.177 に答える
0

データ (0xffffffffffffffffffffffffffff0891684125205260f5ffffffffff) はい、MSISDN が含まれています

----08 = ダイヤル番号の長さを意味します

----91 = MSISDN 国際ダイヤル番号を意味します

残り (684125205260f5) の値 unid は、1 バイトごとに並べてスワップします。例 68 スワップ 86、41 スワップ 14... のようにすると、MSISDN 番号が得られます。

于 2013-10-22T02:33:13.967 に答える