2011-12-20 11 views
11

Próbuję pobrać MSISDN z karty SIM za pomocą Androida. Próbowałem już getLine1Number(), ale to tylko zwraca MSISDN przechowywany w sekcji Informacje o moim telefonie lub Informacje o właścicielu, jeśli te informacje nie są przechowywane, Android zwróci wartość pustą.Uzyskaj MSISDN z karty SIM za pomocą Androida

Czy znasz jakieś prace z tego? lub czy istnieje sposób na wyprowadzenie MSISDN z numeru karty SIM (getSimSerialNumber())?

Czeka na porządną odpowiedź jak zawsze !!! :)

Odpowiedz

20

Numer MSISDN (również numer telefonu komórkowego) nie jest danymi SIM, więc nie można ich odzyskać. Karta SIM ma IMSI (International Mobile Subsriber Identity), która jest wysyłana do HLR (Home Location Register) odpowiedzialnego za mapowanie MSISDN/IMSI. Operatorzy telefonów komórkowych mogą przechowywać MSISDN na karcie SIM, jeśli chcą, ale nie jest to wymagane w protokole GSM.

Przepraszamy!

Aby uzyskać więcej informacji wyglądać w tej dyskusji Getting phone number również How android get MSISDN

EDIT:

Aby uzyskać numer IMSI,

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

ale kilka telefonów powrócić tylko 6 cyfr zamiast 15. Więc możesz użyć,

Według tego posta: 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); 

Aby uzyskać więcej informacji spojrzeć na This Question i class SystemProperties

+0

Tak, uważam, że zbyt ... ale jak mogę odzyskać IMSI z karty SIM za pomocą Andoid? jakieś pomysły? – megazoid

Powiązane problemy