Android を使用して SIM から MSISDN を取得しようとしています。getLine1Number()を試しましたが、これらの情報が保存されていない場合、Android は null 値を返します。
これから回避策を知っていますか?または、SIM 番号 ( getSimSerialNumber() ) から MSISDN を取得する方法はありますか?
いつものようにしっかりした回答を待っています!!! :)
Android を使用して SIM から MSISDN を取得しようとしています。getLine1Number()を試しましたが、これらの情報が保存されていない場合、Android は null 値を返します。
これから回避策を知っていますか?または、SIM 番号 ( getSimSerialNumber() ) から MSISDN を取得する方法はありますか?
いつものようにしっかりした回答を待っています!!! :)
MSISDN (別名携帯電話番号) は SIM データではないため、取得することはできません。SIM カードには、 MSISDN/IMSIのマッピングを担当する HLR (Home Location Register) に送信される IMSI (International Mobile Subsriber Identity) があります。携帯電話事業者は、必要に応じて 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を参照してください。