Получить MSISDN с SIM-карты с помощью Android - PullRequest
11 голосов
/ 20 декабря 2011

Я пытаюсь получить MSISDN с SIM-карты с помощью Android, я пытался getLine1Number () , но это возвращает только MSISDN, сохраненный в разделе «Информация о моем телефоне» или «Информация о владельце», если эта информацияхранится, Android вернет нулевое значение.

Знаете ли вы что-нибудь из этого?или есть способ получить MSISDN по номеру SIM-карты ( getSimSerialNumber () )?

Ожидает твердый ответ, как всегда !!!:)

1 Ответ

20 голосов
/ 20 декабря 2011

MSISDN (он же номер мобильного телефона) не является данными SIM-карты, поэтому вы не можете получить их. SIM-карта имеет IMSI (международный идентификатор абонента мобильной связи), который отправляется в HLR (регистр домашнего местоположения), отвечающий за сопоставление MSISDN / IMSI . Операторы мобильной связи могут хранить MSISDN на SIM-карте, если они этого хотят, но поскольку это не требуется в протоколе GSM, это не так.

Извините!

Для получения дополнительной информации посмотрите это обсуждение Получение номера телефона также Как Android получить MSISDN

EDIT:

Чтобы получить номер IMSI,

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

но несколько трубок возвращают только 6 цифр вместо 15. Итак, вы можете использовать,

Согласно этому посту: 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

...