A partir del 27 de marzo de 2025, te recomendamos que uses android-latest-release
en lugar de aosp-main
para compilar y contribuir a AOSP. Para obtener más información, consulta Cambios en AOSP.
Identificación del operador
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
Los dispositivos que ejecutan Android 9 pueden reconocer la información del operador de suscripción para proporcionar un ID y un nombre de operador. Android mantiene una base de datos de IDs de operador, con reglas de coincidencia para cada operador y su ID de operador único. El AOSP incluye el contenido de la base de datos de ID de operador en el archivo carrier_list.textpb
.
La base de datos unificada minimiza la lógica duplicada en las apps que necesitan identificar a los operadores y limita la exposición de los atributos de identificación del operador.
Para mejorar la cobertura y la precisión de la identificación del operador, Android admite actualizaciones fuera de banda y de la tabla de ID del operador. Cada actualización incluye un número de versión y se publica en AOSP.
Implementación
Los usuarios que quieran implementar actualizaciones fuera de banda pueden descargar el objeto binario carrier_list.pb
de AOSP. Para ver el formato legible de la tabla, consulta carrier_list.textpb
.
Coloca la tabla de ID del operador en la partición de datos /data/misc/carrierid/
del dispositivo. Si la tabla de ID de operador es más reciente que la versión existente, el dispositivo conserva la tabla en la clase de base de datos de ID de operador.
Los métodos públicos getSimCarrierId()
y getSimCarrierIdName()
recuperan la información más reciente de la base de datos de ID de transportista.
Para agregar o actualizar un ID de operador a la base de datos, envía una solicitud mediante el
formulario de información de identificación del operador.
Se revisará tu solicitud y, si se aprueba, el cambio se enviará a la base de código de AOSP en carrier_list.pb
.
Luego, puedes copiar la lista actualizada y, luego, incorporarla a tu compilación personalizada.
Integra los IDs de operador con CarrierConfig
A partir de Android 10, la configuración del operador admite el uso de IDs de operador como claves para recuperar configuraciones específicas del operador desde CarrierService
.
La integración de IDs de operador con CarrierConfig
tiene las siguientes ventajas:
- Consolida todos los pares de MCC/MNC de cada operador en una sola ubicación y quita los datos duplicados o incoherentes.
- Crea un identificador canónico para cada operador y quita la ambigüedad.
- Permite que los operadores de red virtual móvil (MVNO) se identifiquen con IDs individuales en lugar de tener configuraciones como parte de un operador de red móvil (MNO).
Migra datos de configuración a IDs de operador
Para migrar datos de configuración de pares MCC/MNC a IDs de operador, sigue estos pasos:
Agrupa los archivos carrier_config_mccmnc.xml
de un solo operador.
Usa carrier_list.textpb
como referencia para asignar la información de MCC, MNC y MVNO a un operador en particular.
Combina las configuraciones en un solo archivo.
Hereda datos de las MNO (opcional). Los MVNO heredan configuraciones de los MNO en el archivo carrier_config_mccmnc.xml
heredado. Debido a que los IDs de operador permiten que todos los operadores, incluidos los MVNO, tengan un archivo de configuración dedicado, se recomienda incluir datos de MNO durante la migración.
Si no existe la configuración para un ID de operador de MVNO, recupera la configuración de su ID de operador de MNO con getCarrierIdFromSimMccMnc
.
Cambia el nombre del archivo nuevo a carrier_config_carrierid_carrierid_carriername.xml
, en el que carrierid debe corresponder a un canonical_id
y carriername debe corresponder a un carrier_name
en carrier_list.textpb
.
El contenido y las muestras de código que aparecen en esta página están sujetas a las licencias que se describen en la Licencia de Contenido. Java y OpenJDK son marcas registradas de Oracle o sus afiliados.
Última actualización: 2025-07-26 (UTC)
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Falta la información que necesito","missingTheInformationINeed","thumb-down"],["Muy complicado o demasiados pasos","tooComplicatedTooManySteps","thumb-down"],["Desactualizado","outOfDate","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Problema con las muestras o los códigos","samplesCodeIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2025-07-26 (UTC)"],[],[],null,["# Carrier identification\n\nDevices running Android 9 can recognize subscription\ncarrier information to\nprovide an ID and a carrier name. Android maintains a carrier ID database, with\nmatching rules for each carrier and its unique carrier ID. AOSP includes the\ncontent of the carrier ID database, in the file\n[`carrier_list.textpb`](https://android.googlesource.com/platform/packages/providers/TelephonyProvider/+/android16-release/assets/latest_carrier_id/carrier_list.textpb).\nThe unified database minimizes duplicate logic in apps that need to identify\ncarriers and limits the exposure of carrier-identifying attributes.\n\nTo improve the coverage and accuracy of carrier identification, Android supports\nout-of-band and carrier ID table updates. Each update comes with a version\nnumber and is published to AOSP.\n\nImplementation\n--------------\n\nUsers who want to implement out-of-band updates can download the\n[`carrier_list.pb`](https://android.googlesource.com/platform/packages/providers/TelephonyProvider/+/android16-release/assets/latest_carrier_id/carrier_list.pb)\nbinary from AOSP. To view the readable format of the table, see\n[`carrier_list.textpb`](https://android.googlesource.com/platform/packages/providers/TelephonyProvider/+/android16-release/assets/latest_carrier_id/carrier_list.textpb).\n\nPlace the carrier ID table in the `/data/misc/carrierid/` data partition of the\ndevice. If the carrier ID table is newer than the existing version, the device\npersists the table to the\n[carrier ID database class](https://developer.android.com/reference/android/provider/Telephony.CarrierId).\nThe most recent information from the carrier ID database is picked up by the\npublic methods\n[`getSimCarrierId()`](https://developer.android.com/reference/android/telephony/TelephonyManager#getSimCarrierId())\nand\n[`getSimCarrierIdName()`](https://developer.android.com/reference/android/telephony/TelephonyManager#getSimCarrierIdName()).\n\nAdd carrier ID information to the database\n------------------------------------------\n\nTo add or update a carrier ID to the database, submit a request using the\n[Carrier identification information form](https://docs.google.com/forms/d/1KjwTaExKRjkE9tbR9yavBrGzwvuz1dNku2Ae_7GrdUQ/viewform?edit_requested=true).\n\nYour request is reviewed and if approved, the change is pushed to the AOSP code\nbase at\n[`carrier_list.pb`](https://android.googlesource.com/platform/packages/providers/TelephonyProvider/+/android16-release/assets/latest_carrier_id/carrier_list.pb).\nYou can then copy the updated list and incorporate it into your customized\nbuild.\n\nIntegrate carrier IDs with CarrierConfig\n----------------------------------------\n\nStarting from Android 10,\n[carrier configuration](/docs/core/connect/carrier) supports\nusing carrier IDs as keys to fetch carrier-specific configurations from\n[`CarrierService`](https://developer.android.com/reference/android/service/carrier/CarrierService).\n\nIntegrating carrier IDs with `CarrierConfig` has the following advantages:\n\n- Consolidates all MCC/MNC pairs for each carrier into a single location removing duplicate or inconsistent data.\n- Creates a canonical identifier for each carrier and removes ambiguity.\n- Allows mobile virtual network operators (MVNOs) to be identified with individual IDs instead of having configurations as part of a mobile network operator (MNO).\n\n### Migrate configuration data to carrier IDs\n\nTo migrate configuration data from MCC/MNC pairs to carrier IDs, follow\nthese steps:\n\n1. Group the `carrier_config_mccmnc.xml` files from a single carrier together.\n Use\n [`carrier_list.textpb`](https://android.googlesource.com/platform/packages/providers/TelephonyProvider/+/android16-release/assets/latest_carrier_id/carrier_list.textpb)\n as a reference to map the MCC, MNC, and MVNO information to a particular\n carrier.\n\n2. Merge the configurations into a single file.\n\n3. (Optional) Inherit data from MNOs. MVNOs inherit configurations from\n MNOs in the legacy `carrier_config_mccmnc.xml` file. Because carrier IDs\n allow all carriers including MVNOs to have a dedicated config file, it's\n recommended to include MNO data during migration.\n\n4. If the configuration for an MVNO carrier ID doesn't exist, fetch the\n configuration from its MNO carrier ID using\n [`getCarrierIdFromSimMccMnc`](https://developer.android.com/reference/android/telephony/TelephonyManager#getCarrierIdFromSimMccMnc()).\n\n5. Rename the new file as\n `carrier_config_carrierid_`\u003cvar translate=\"no\"\u003ecarrierid\u003c/var\u003e`_`\u003cvar translate=\"no\"\u003ecarriername\u003c/var\u003e`.xml`\n where \u003cvar translate=\"no\"\u003ecarrierid\u003c/var\u003e must correspond to a `canonical_id` and\n \u003cvar translate=\"no\"\u003ecarriername\u003c/var\u003e should correspond to a `carrier_name` in\n [`carrier_list.textpb`](https://android.googlesource.com/platform/packages/providers/TelephonyProvider/+/android16-release/assets/latest_carrier_id/carrier_list.textpb)\n\n| **Note:** If a `carrier_config_mccmnc` file doesn't have a matching carrier ID, submit a request to add a carrier ID by following the steps in [Adding carrier ID information to the database](#adding_carrier_id_information_to_the_database)."]]