Identificación del operador

Los dispositivos que ejecutan Android 9 pueden reconocer la información del proveedor de suscripción para proporcionar un ID y un nombre de proveedor. Android mantiene una base de datos de ID de proveedor, con reglas de coincidencia para cada proveedor y su ID de proveedor único. El Proyecto de código abierto de Android (AOSP) incluye el contenido de la base de datos de ID de proveedor en el archivo carrier_list.textpb. La base de datos unificada minimiza la lógica duplicada en las apps que necesitan identificar proveedores y limita la exposición de los atributos de identificación del proveedor.

Para mejorar la cobertura y la exactitud de la identificación del proveedor, Android admite actualizaciones fuera de banda y de la tabla de ID de proveedor. Cada actualización incluye un número de versión y se publica en AOSP.

Implementación

Si quieres implementar actualizaciones fuera de banda, puedes descargar el carrier_list.pb objeto binario desde AOSP. Para ver el formato legible de la tabla, consulta carrier_list.textpb.

Coloca la tabla de ID de proveedor en la partición de datos /data/misc/carrierid/ del dispositivo. Si la tabla de ID de proveedor es más reciente que la versión existente, el dispositivo la conserva en la clase de base de datos de ID de proveedor. Los métodos públicos getSimCarrierId() y getSimCarrierIdName()obtienen la información más reciente de la base de datos de ID de proveedor.

Agrega información de ID de proveedor a la base de datos

Para agregar o actualizar un ID de proveedor a la base de datos, envía una solicitud con el formulario de información de identificación del proveedor.

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, podrás copiar la lista actualizada e incorporarla a tu compilación personalizada.

Integra IDs de proveedor con CarrierConfig

A partir de Android 10, la configuración del proveedor admite el uso de IDs de proveedor como claves para obtener configuraciones específicas del proveedor de CarrierService.

La integración de IDs de proveedor con CarrierConfig tiene las siguientes ventajas:

  • Consolida todos los pares de MCC/MNC para cada proveedor en una sola ubicación, lo que quita los datos duplicados o incoherentes.
  • Crea un identificador canónico para cada proveedor y quita la ambigüedad.
  • Permite que los operadores de redes móviles virtuales (MVNO) se identifiquen con IDs individuales en lugar de tener configuraciones como parte de un operador de redes móviles (MNO).

Migra datos de configuración a IDs de proveedor

Para migrar datos de configuración de pares de MCC/MNC a IDs de proveedor, sigue estos pasos:

  1. Agrupa los archivos carrier_config_mccmnc.xml de un solo proveedor. Usa carrier_list.textpb como referencia para asignar la información de MCC, MNC y MVNO a un proveedor en particular.

  2. Combina las configuraciones en un solo archivo.

  3. Hereda datos de los MNO (opcional). Los MVNO heredan configuraciones de los MNO en el archivo carrier_config_mccmnc.xml heredado. Debido a que los IDs de proveedor permiten que todos los proveedores, incluidos los MVNO, tengan un archivo de configuración dedicado, se recomienda incluir datos de MNO durante la migración.

  4. Si no existe la configuración para un ID de proveedor de MVNO, obtén la configuración de su ID de proveedor de MNO con getCarrierIdFromSimMccMnc.

  5. Cambia el nombre del archivo nuevo por 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.