Voglio ottenere il numero di telefono del dispositivo Android. Io uso questo codice:
TelephonyManager tm = (TelephonyManager)this.getApplicationContext().getSystemService(Context.TELEPHONY_SERVICE);
String phoneNumber= tm.getLine1Number();
Sul mio telefono (HTC Wildfire) non riesco a ottenere il numero di telefono: tutto ciò che ottengo è una stringa vuota. Se eseguo il codice su emulatur, viene normalmente mostrato il numero di telefono.
Se vado su Impostazioni => Info sul telefono => Identità del telefono-> Numero di telefono, il numero di telefono è "Sconosciuto".
Dov'è il problema? C'è qualcosa che non va nella mia SIM?
risposte:
35 per risposta № 1Abbiamo avuto lo stesso problema nel nostro progetto. La conclusione è stata che dipende dalla carta SIM.
Cosa ci è successo:
- Galaxy S con scheda SIM AT & T: può leggere il numero di telefono, Impostazioni mostra il numero
- Lo stesso Galaxy con una scheda SIM europea: impossibile leggere il numero e "sconosciuto" nelle Impostazioni (il telefono cellulare era perfettamente funzionante, non si poteva leggere il numero)
Questo è stato segnalato anche in altri forum.
Alla fine abbiamo deciso di chiedere all'utente il numero di telefono. Un po 'più coinvolto, in realtà: if( "SIM card present" && "cannot read the cell number") "ask user";
. Altrimenti continueremo a insidiare l'utente che non ha una carta SIM in primo luogo.
11 per risposta № 2
Invece del numero di telefono utilizzare il numero di serie della scheda SIM, che esiste sempre ed è sempre un valore valido.
telephonyManager.getSimSerialNumber();
Il numero di serie della SIM è unico all'interno dell'operatore almeno. Quindi combinato con
telephonyManager.getNetworkOperator();
avrai un identificatore univoco per un abbonato all'interno di un paese.
Questo combinato con
telephonyManager.getNetworkCountryIso();
avrai un identificatore univoco globale per un abbonato.
Spero che questo ti sia d'aiuto.
Saluti.
5 per risposta № 3
La carta SIM memorizza il numero di telefono e può essere modificatoda te Non posso dire per Android, ma su WM puoi facilmente modificare il tuo numero di telefono, che è memorizzato sulla scheda SIM. Ovviamente, ciò non significa che puoi cambiare il tuo numero di telefono al volo. In realtà, sei libero di scrivere lì qualsiasi numero che ti piace, e i programmi crederanno che questo è il tuo vero numero :)
2 per risposta № 4
Quando ho trasferito una scheda SIM in un nuovo telefono, a volte ho riscontrato che il numero di telefono non viene visualizzato in Impostazioni -> Info sul telefono -> Stato -> Il mio numero di telefono.
I miei punti dati:
- AT & T Atrix che inserisce una SIM completamente nuova dice "Voice MSISDN Line1 null".
- T-Mobile G1 inserendo una nuova scheda SIM correttamente visualizza il numero di telefono.
- La SIM in movimento di T-Mobile G2 dal mio vecchio G1 è "Sconosciuto".
0 per risposta № 5
Io uso una simcard che consente solo il trasferimento dei dati. Non consente le telefonate.
Quando provo a ottenere phonenumber con getLine1Number()
, Ottengo una stringa vuota.
0 per risposta № 6
Numero di telefono disponibile se la carta SIM èpermette di ottenere il suo. Nella nostra azienda ho trovato solo una SIM, che è possibile ottenere il numero. Sto testando questa SIM su tutti i dispositivi Android. Tutto ok. GetLine1Number () è ok. Ora sto cercando il numero di telefono per altre SIM. Ho inviato sms al nostro sms-server o altro dispositivo Android (con l'elaborazione di SMS)