web-dev-qa-db-ja.com

Android)を使用してSIMからMSISDNを取得します

Androidを使用してSIMからMSISDNを取得しようとしていますが、getLine1Number()を試しましたが、これらの情報が保存されていない場合、[電話情報]または[所有者情報]セクションに保存されているMSISDNのみが返されます。 Androidはnull値を返します。

これからの回避策を知っていますか?または、SIM番号(getSimSerialNumber())からMSISDNを導出する方法はありますか?

いつものようにしっかりした答えを待っています!!! :)

11
megazoid

[〜#〜] msisdn [〜#〜](別名携帯電話番号)はSIMデータではないため、取得できませんそれ。 SIMカードにはIMSI(International Mobile Subsriber Identity)があり、マッピングの実行を担当するHLR(Home Location Register)に送信されますMSISDN/IMSI 。携帯電話事業者は、必要に応じてMSISDNをSIMカードに保存できますが、GSMプロトコルでは必須ではないため、そうではありません。

ごめんなさい!

詳細については、このディスカッションをご覧ください 電話番号の取得 また 方法Android MSISDNの取得

編集:

IMSI番号を取得するには、

 TelephonyManager mTelephonyMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
 String imsi = mTelephonyMgr.getSubscriberId();

しかし、いくつかの携帯電話は15ではなく6桁しか返しません。したがって、次を使用できます。

この投稿によると: http://www.anddev.org/tinytut_-_getting_the_imsi_-_imei_sim-device_unique_ids-t446.html

String imei = Android.os.SystemProperties.get(Android.telephony.TelephonyProperties.PROPERTY_IMSI);

詳細については、 この質問 および クラスSystemProperties を参照してください。

20
user370305