significa que mnc mcc esta donde cual compañia colombia codigo celular argentina activado java android mobile

java - esta - que es el mcc y mnc de un celular



¿cómo se obtiene el MCC y el MNC del teléfono en Android? (7)

¿Sabía que hay dos MCC / MNC para un teléfono activo? (Uno es el código de país y la identificación del operador para la tarjeta SIM, el otro es para la red / torre celular en uso).

Si getResources().getConfiguration().mcc no está vacío en el modo avión, es el valor Sim TelephonyManager.getSimOperator() , no el valor de la tower TelephonyManager.getNetworkOperator() .

No sé qué OP quiere, pero Answer 3 le dará resultados diferentes a los de su código original si getConfiguration es realmente el valor Sim .

La única forma que he encontrado de recuperar MCC y MNC es anulando el método onConfigurationChanged de una actividad, como tal:

public void onConfigurationChanged(Configuration config) { super.onConfigurationChanged(config); DeviceData.MCC = "" + config.mcc; DeviceData.MNC = "" +config.mnc; }

Sin embargo, necesito estos datos tan pronto como se inicie la aplicación y no puedo esperar a que el usuario cambie la orientación del teléfono o su equivalente para activar este método. ¿Hay una mejor manera de acceder al objeto de configuración actual?


Bien, resulta que getResources (). GetConfiguration (). Mcc truco es probablemente mejor para la mayoría de los propósitos, porque con el otro si la persona pone su teléfono en modo avión o utiliza Wi-Fi, entonces devuelve un vacío MCC.


Descubrí que el operador de red a veces puede ser como 65@5 cuando no está conectado al operador (servicio no disponible) incluso si hay una tarjeta SIM insertada. Esto sucedió en Samsung S2 con Android 4.1.2.

Por lo tanto, debe tener cuidado al convertir a Int.

int mcc = Integer.parseInt(networkOperator.substring(0, 3));


El TelephonyManager tiene un método para devolver el MCC + MNC como una Cadena ( getNetworkOperator() ) que le hará lo que quiera. Puede obtener acceso a través de:

protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TelephonyManager tel = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); String networkOperator = tel.getNetworkOperator(); if (!TextUtils.isEmpty(networkOperator)) { int mcc = Integer.parseInt(networkOperator.substring(0, 3)); int mnc = Integer.parseInt(networkOperator.substring(3)); } }


Puede acceder a la configuración actual mediante getResources().getConfiguration() hace el truco.


getResources().getConfiguration().mcc es una mala elección porque devuelve un número entero, lo que compromete valores válidos como 01 o 044 . Claramente, el número entero no es una buena opción para esto.

Ver detalles en Mobile_Network_Code

Actualización: en Australia, verificamos un caso incorrecto aquí. getNetworkOperator devuelve un valor diferente de getSimOperator , donde este último es correcto.

Ver detalles en el documento Android: TelephonyManager


esto esta actualizado utilizar esta

TelephonyManager tel = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); String networkOperator = tel.getSimOperator(); System.out.println("************mnc,mcc"+networkOperator); if (!TextUtils.isEmpty(networkOperator)) { mcc = networkOperator.substring(0, 3); mnc = networkOperator.substring(3);System.out.println("************mnc,mcc"+mnc+mcc); }mnc_mcc.setText("************mnc,mcc"+mnc+","+mcc); }