À partir du 27 mars 2025, nous vous recommandons d'utiliser android-latest-release
au lieu de aosp-main
pour créer et contribuer à AOSP. Pour en savoir plus, consultez la section Modifications apportées à AOSP.
Identification de l'opérateur
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
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 d'ID d'opérateur, avec des règles de correspondance 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 de la table de l'ID de l'opérateur. Chaque mise à jour est accompagnée d'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()
.
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 d'opérateur avec CarrierConfig
À partir d'Android 10, la configuration de l'opérateur permet d'utiliser des ID d'opérateur comme clés pour extraire des 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 MCC/MNC vers les ID de l'opérateur, procédez comme suit:
Regroupez les fichiers carrier_config_mccmnc.xml
d'un seul 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.
Fusionnez les configurations dans un seul fichier.
(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.
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
.
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
.
Le contenu et les exemples de code de cette page sont soumis aux licences décrites dans la Licence de contenu. Java et OpenJDK sont des marques ou des marques déposées d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/07/26 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 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)."]]