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