android - see - what is your phone number en español
TelephonyManager.getLine1Number() falló? (6)
Quiero obtener el número de teléfono del dispositivo Android. Yo uso este código:
TelephonyManager tm = (TelephonyManager)this.getApplicationContext().getSystemService(Context.TELEPHONY_SERVICE);
String phoneNumber= tm.getLine1Number();
En mi teléfono (HTC Wildfire) no puedo obtener el número de teléfono, todo lo que obtengo es una cadena vacía. Si ejecuto código en emulatur, normalmente se muestra el número de teléfono.
Si voy a Configuración => Acerca del teléfono => Identidad del teléfono-> Número de teléfono, el número de teléfono es "Desconocido".
¿Dónde está el problema? ¿Hay algún problema con mi SIM?
Cuando moví una tarjeta SIM a un teléfono nuevo, a veces descubrí que el número de teléfono no aparece en Configuración -> Acerca del teléfono -> Estado -> Mi número de teléfono.
Mis puntos de datos:
- AT & T Atrix pone SIM completamente nueva en él y dice "Voice MSISDN Line1 null".
- T-Mobile G1 colocando nueva tarjeta SIM correctamente muestra el número de teléfono.
- T-Mobile G2 mueve la tarjeta SIM de mi antiguo G1 a "Desconocido".
En lugar del número de teléfono, use el número de serie de la tarjeta SIM, que siempre existe y siempre es un valor válido.
telephonyManager.getSimSerialNumber();
El número de serie de SIM es único al menos dentro del operador. Así que combinado con
telephonyManager.getNetworkOperator();
Tendrás un identificador único para un suscriptor dentro de un país.
Esto combinado con
telephonyManager.getNetworkCountryIso();
Tendrás un identificador global único para un suscriptor.
Espero que esto ayude
Aclamaciones.
La tarjeta SIM almacena el número de teléfono y usted puede editarlo. No puedo decir para Android, pero en WM puede editar fácilmente su número de teléfono, que está almacenado en la tarjeta SIM. Por supuesto, no significa que pueda cambiar su número de teléfono sobre la marcha. En realidad, puedes escribir cualquier número que desees, y los programas creerán que este es tu número real :)
Número de teléfono disponible si la tarjeta SIM le permite obtener la suya. En nuestra compañía, encontré solo una SIM, que está permitida para obtener el número. Estoy utilizando esta tarjeta SIM en todos los dispositivos Android. Todo bien. getLine1Number () está bien. Ahora estoy buscando un número de teléfono para otra tarjeta SIM. Enviar sms a nuestro servidor de sms u otro dispositivo Android (con el procesamiento de SMS)
Tuvimos el mismo problema en nuestro proyecto. La conclusión fue que depende de la tarjeta SIM.
Qué nos pasó:
- Galaxy S con tarjeta SIM de AT & T: puede leer el número de teléfono, la configuración muestra el número
- Mismo Galaxy con una tarjeta SIM europea: no se puede leer el número y "desconocido" en Configuración (el teléfono celular era perfectamente funcional, simplemente no podía leer el número)
Esto también ha sido reportado en otros foros.
Al final, decidimos pedirle al usuario el número de teléfono. Un poco más involucrado, de hecho: if( "SIM card present" && "cannot read the cell number") "ask user";
. De lo contrario, seguiremos molestando al usuario que no tiene una tarjeta SIM en primer lugar.
Utilizo una tarjeta SIM que solo permite la transferencia de datos. No permite llamadas telefónicas.
Cuando trato de obtener un número de teléfono con getLine1Number()
, obtengo una cadena vacía.