Androidを使用してSIMからMSISDNを取得しようとしていますが、getLine1Number()を試しましたが、これらの情報が保存されていない場合、[電話情報]または[所有者情報]セクションに保存されているMSISDNのみが返されます。 Androidはnull値を返します。
これからの回避策を知っていますか?または、SIM番号(getSimSerialNumber())からMSISDNを導出する方法はありますか?
いつものようにしっかりした答えを待っています!!! :)
[〜#〜] 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 を参照してください。