2011-12-20 14 views
11

Sto cercando di recuperare il MSISDN dalla SIM utilizzando Android, ho provato getLine1Number() ma questo restituisce solo il MSISDN memorizzato in Informazioni sul mio telefono o Informazioni sul proprietario, se questi le informazioni non sono memorizzate, Android restituirà un valore nullo.Ottieni MSISDN dalla SIM utilizzando Android

Conosci qualche lavoro da questo? o c'è un modo per derivare il MSISDN dal numero SIM (getSimSerialNumber())?

Aspetta una risposta solida come sempre !!! :)

risposta

20

Il MSISDN (ovvero il numero di cellulare) non è un dato SIM, quindi non è possibile recuperarlo. La carta SIM ha un IMSI (International Mobile Subsriber Identity) che viene inviato all'HLR (Home Location Register) responsabile della mappatura MSISDN/IMSI. Gli operatori di telefonia mobile possono memorizzare MSISDN sulla scheda SIM se lo desiderano, ma poiché non è richiesto nel protocollo GSM, non lo è.

Siamo spiacenti!

Per maggiori informazioni un'occhiata a questo dibattito Getting phone number anche How android get MSISDN

EDIT:

Per ottenere il numero di IMSI,

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

ma alcuni telefoni restituire solo 6 cifre invece di 15. Quindi, è possibile utilizzare,

Secondo questo post: 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); 

Per maggiori informazioni un'occhiata a This Question e class SystemProperties

+0

Sì, ho trovato che troppo ... ma come faccio a recuperare l'IMSI della SIM utilizzando Andoid? qualche idea? – megazoid

Problemi correlati