2011-11-10 11 views
6

Android proporciona el siguiente método para determinar el operador de red: http://developer.android.com/reference/android/telephony/TelephonyManager.html#getNetworkOperatorName()Android ¿Cómo identificar el operador en la red CDMA?

Sin embargo, incluso la documentación dice específicamente:

Devuelve el nombre alfabético del operador registrado actual. Disponibilidad: solo cuando el usuario está registrado en una red. El resultado puede no ser confiable en las redes CDMA (use getPhoneType() para determinar si está en una red CDMA).

El problema es que necesitamos una manera confiablepara detectar la portadora para que podamos identificar la fuente de tráfico. ¿Alguien ha tenido un problema similar y, de ser así, cuál es la mejor solución?

+0

Bueno, utilice el método previsto en el enlace, si devuelve resultados nulos o inválidos utilizan getPhoneType(). – Jack

+0

getPhoneType nos dirá que _ estamos_ en una red CDMA, pero necesitamos identificar ** en qué ** red estamos CDMA (es decir, qué operador) – rbanikaz

Respuesta

-1

¿Crees que tal vez esto fue un precursor de Google para obtener compatibilidad con CDMA? Jugar en el marco o encontrar otro campo de juego es lo que escucho decir Google. Bueno, eso y el hecho de que las aplicaciones de los operadores se hayan grabado en roms a veces han dejado agujeros en la seguridad. En cuanto a una posible respuesta a su pregunta ... ¿desde dónde puede obtener información? La configuración de APN podría decirle o una afirmación a una línea de operador conocida en build.prop podría extraer la información que podría necesitar, por ejemplo. (Yo hago los hobby roms). Por otra parte, si usted inspecciona físicamente un teléfono, el transportista suele ser de marca;) ¿Desde qué punto de vista está sacando la información?

Rob

0

Actualmente estoy buscando una solución para este problema también. De acuerdo con este thread uno podría usar CdmaCellLocation.getNetworkId y CdmaCellLocation.getSystemId. Como no hay redes CDMA en Alemania, no puedo verificar si esto funciona ...

2

Mi teléfono está en Verizon Wireless. Diariamente, manejo por áreas donde mi teléfono está en itinerancia y/o tiene mala recepción. Usando la capa de scripting para android, registraré los resultados de llamar a getOperatorName() una vez cada diez minutos durante la próxima semana.

Hay another method que pueden funcionar en la api de android.telephony.cdma. La documentación allí falta el descargo de responsabilidad de la confiabilidad. Solo obtendría una identificación de red en lugar de un nombre. Desafortunadamente, esto requiere API nivel 5 en lugar de 1 si eso es importante para usted.

El registro de los resultados del método getOperatorName() no produjo nada especial. Cuando no tenía ningún servicio, siempre devolvía el valor nulo y, cuando tenía el servicio, me devolvía constantemente "Verizon Wireless". Estoy seguro de que no es muy útil.

Editar: Adición y corrección. Agregado - Explicación de enlace corregido - API de nivel 5 no 17

Edición 2: Resultados de las pruebas

+0

Bienvenido al desbordamiento de la pila. Al vincular, intente agregar las partes esenciales a su respuesta aquí. – Cezar

+0

Lo siento. No entiendo muy bien a qué te refieres. ¿Quiere decir agregar un comentario con las partes esenciales en él, o debería haber incluido más información para explicar el enlace que puse en mi respuesta? –

+0

No hay problema.Por lo general, me gusta ver las partes esenciales de la información contenida en un enlace refrerred justo en la respuesta. A veces es posible dar la información esencial de una manera en que el solicitante puede implementar una solución sin leer toda la referencia. Si crees que este no es el caso, no te preocupes, y bienvenido de nuevo =) – Cezar

Cuestiones relacionadas