Identification du transporteur

Les appareils équipés d'Android 9 peuvent reconnaître les informations sur l'opérateur de l'abonnement pour fournir un ID et un nom d'opérateur. Android gère une base de données des ID d'opérateurs, avec des règles correspondantes pour chaque opérateur et son ID d'opérateur unique. AOSP inclut le contenu de la base de données des ID de l'opérateur dans le fichier carrier_list.textpb. La base de données unifiée minimise la logique en double dans les applications qui doivent identifier les transporteurs et limite l'exposition des attributs permettant d'identifier les transporteurs.

Pour améliorer la couverture et la précision de l'identification de l'opérateur, Android prend en charge les mises à jour hors bande et du tableau des ID d'opérateur. Chaque mise à jour est associée à un numéro de version et est publiée sur AOSP.

Implémentation

Les utilisateurs qui souhaitent implémenter des mises à jour hors bande peuvent télécharger le binaire carrier_list.pb depuis AOSP. Pour afficher le format lisible de la table, consultez carrier_list.textpb.

Placez la table d'ID de l'opérateur dans la partition de données /data/misc/carrierid/ de l'appareil. Si la table de l'ID opérateur est plus récente que la version existante, l'appareil conserve la table dans la classe de base de données de l'ID opérateur. Les informations les plus récentes de la base de données des ID de transporteur sont récupérées par les méthodes publiques getSimCarrierId() et getSimCarrierIdName().

Ajouter des informations sur l'ID du transporteur à la base de données

Pour ajouter ou mettre à jour un ID de transporteur dans la base de données, envoyez une demande à l'aide du formulaire d'informations d'identification du transporteur.

Votre demande est examinée et, si elle est approuvée, la modification est transmise à la base de code AOSP à l'adresse carrier_list.pb. Vous pouvez ensuite copier la liste mise à jour et l'intégrer à votre build personnalisé.

Intégrer des ID de transporteur avec CarrierConfig

À partir d'Android 10, la configuration de l'opérateur permet d'utiliser les ID d'opérateur comme clés pour récupérer les configurations spécifiques à l'opérateur à partir de CarrierService.

Intégrer des ID de transporteur à CarrierConfig présente les avantages suivants:

  • Consolide toutes les paires MCC/MNC pour chaque opérateur en un seul emplacement, en supprimant les données en double ou incohérentes.
  • Crée un identifiant canonique pour chaque transporteur et élimine les ambiguïtés.
  • Permet d'identifier les opérateurs de réseau mobile virtuel (MVNO) avec des ID individuels au lieu de configurations dans le cadre d'un opérateur de réseau mobile (MNO).

Migrer des données de configuration vers des ID de transporteur

Pour migrer les données de configuration des paires CM/MNC vers les ID d'opérateur, procédez comme suit:

  1. Regroupez les fichiers carrier_config_mccmnc.xml d'un même opérateur. Utilisez carrier_list.textpb comme référence pour mapper les informations du CM, du MN et du MVNO à un opérateur spécifique.

  2. Fusionnez les configurations en un seul fichier.

  3. (Facultatif) Hériter des données des opérateurs mobiles Les MVNO héritent des configurations des MNO dans l'ancien fichier carrier_config_mccmnc.xml. Étant donné que les ID de l'opérateur permettent à tous les opérateurs, y compris les MVNO, de disposer d'un fichier de configuration dédié, il est recommandé d'inclure les données de l'opérateur mobile lors de la migration.

  4. Si la configuration d'un ID d'opérateur MVNO n'existe pas, récupérez la configuration à partir de son ID d'opérateur MNO à l'aide de getCarrierIdFromSimMccMnc.

  5. Renommez le nouveau fichier en carrier_config_carrierid_carrierid_carriername.xml, où carrierid doit correspondre à canonical_id et carriername à carrier_name dans carrier_list.textpb.