/ / TelephonyManager.getLine1Number () fallendo? - Android, numero di telefono

TelephonyManager.getLine1Number () fallendo? - Android, numero di telefono

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 № 1

Abbiamo 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)