2012-06-25 10 views
8

¿Qué método getLine1Number()TelephonyManager devuelve con teléfonos SIM dual como LG Optimus Net Dual?¿Qué devuelve getLine1Number() con dos teléfonos SIM?

+0

Tendría que probarlo, pero creo que devolvería el número de SIM principal. – Raykud

+0

@Raykud Esperamos su respuesta. –

+0

Bueno, parece que una tarjeta SIM está en modo de espera y la otra no, y está configurada como primaria, por lo tanto devolverá el número de la tarjeta SIM que no está en modo de espera. – Raykud

Respuesta

10

¡Volverás con un solo número ... tal vez!

Primero, el número que recibe depende del dispositivo.

Pero igualmente importante es si obtendrá un número y si este número será el número de teléfono, es completamente impredecible. Esto es SIM y dependiente del operador.

En una de mis aplicaciones, comencé tratando de usar el número de teléfono como una identificación única, ya que podía esperar que el usuario recordara este número fácilmente. Para la mayoría de los operadores en Asia, Australia y algunos en Europa, ¡el número de teléfono (línea1número()) simplemente no está almacenado en la SIM! Con otros, puede obtener una cadena de ceros. O un número formateado de una manera que pueda tener sentido localmente pero que podría arruinar la lógica de su aplicación.

0

El SDK predeterminado no tiene soporte para manejar teléfonos con dos SIM. La función solo devolverá un número, muy probablemente desde la primera tarjeta SIM activa.

Sin embargo, el fabricante a veces da SDK para manejar estas cosas, es posible que desee echarle un vistazo a esto.

+0

¿Puedo obtener el SDK de cualquier fabricante que admita dos SIM? – Kishore

+1

@ Kishore depende del fabricante. – gonzobrains

+1

@gonzobrains sé que depende del fabricante, pero le pregunté si alguien sabe acerca de dichos fabricantes. – Kishore

2

Android no admite dispositivos con doble SIM. Ver: Detect the status of two SIM cards in a dual-SIM Android phone

Como alguien más dijo, es posible que reciba asistencia de los fabricantes de dispositivos.

Además, getLine1Number() no garantiza la devolución de un número de teléfono. Simplemente devuelve lo que los operadores almacenan en la tarjeta, y algunos operadores no se molestan en completar ese número. Entonces, con algunas tarjetas SIM, esto simplemente devolvería nulo.

Si proporciona detalles de lo que está tratando de lograr, podríamos ofrecer una mejor solución.

Cuestiones relacionadas