Les API eUICC fournissent des codes d'erreur pour aider les applications et les utilisateurs à résoudre les problèmes liés au téléchargement, à l'activation, à la désactivation et à la suppression des profils eSIM.
Gérer les erreurs
Lorsqu'une erreur se produit lors de l'appel de l'API eUICC, un rappel d'intent en attente est fourni et EXTRA_EMBEDDED_SUBSCRIPTION_DETAILED_CODE est utilisé comme clé pour obtenir le code d'erreur détaillé. À partir d'Android 11, les quatre clés et valeurs suivantes sont incluses dans l'intent obtenu :
EXTRA_EMBEDDED_SUBSCRIPTION_OPERATION_CODE: fournit des informations sur ce qui s'est mal passé. (téléchargement ou suppression d'un profil eSIM, par exemple). Ce champ n'est jamais vide.EXTRA_EMBEDDED_SUBSCRIPTION_ERROR_CODE: informations sur la cause de l'erreur. Par exemple, la demande a expiré ou l'appareil est verrouillé par l'opérateur. Ce champ n'est pas renseigné dans les cas suivants :- Le code de l'opération est
OPERATION_SMDX_SUBJECT_REASON_CODE. - L'erreur est une erreur de bas niveau, telle que
IOExceptionouInterruptedException.
- Le code de l'opération est
EXTRA_EMBEDDED_SUBSCRIPTION_SMDX_SUBJECT_CODE: Utilisé avecEXTRA_EMBEDDED_SUBSCRIPTION_SMDX_REASON_CODE, qui fournissent ensemble SubjectCode[5.2.6.1] et ReasonCode[5.2.6.2] de GSMA (SGP.22 v2.2). Ce champ n'est renseigné que lorsque le code d'opération estOPERATION_SMDX_SUBJECT_REASON_CODE.EXTRA_EMBEDDED_SUBSCRIPTION_SMDX_REASON_CODE: Utilisé avecEXTRA_EMBEDDED_SUBSCRIPTION_SMDX_SUBJECT_CODE, qui fournissent ensemble SubjectCode[5.2.6.1] et ReasonCode[5.2.6.2] de GSMA (SGP.22 v2.2). Ce champ n'est renseigné que lorsque le code d'opération estOPERATION_SMDX_SUBJECT_REASON_CODE.
Ces quatre valeurs permettent à l'appelant de l'API eUICC de gérer individuellement des erreurs spécifiques. Voici un exemple de gestion de ces erreurs.
int operationCode = intent.get(EXTRA_EMBEDDED_SUBSCRIPTION_OPERATION_CODE)
int errorCode = intent.get(EXTRA_EMBEDDED_SUBSCRIPTION_OPERATION_CODE)
String smdxSubjectCode = intent.get(EXTRA_EMBEDDED_SUBSCRIPTION_SMDX_SUBJECT_CODE)
String smdxReasonCode = intent.get(EXTRA_EMBEDDED_SUBSCRIPTION_SMDX_REASON_CODE)
if (operationCode == OPERATION_DOWNLOAD && errorCode == ERROR_CARRIER_LOCKED) {
// handle specific error i.e. tries to download but the device is carrier locked
} else if (operationCode == OPERATION_SMDX) {
// handle all SM-DP+/SM-DS errors
} else if (errorCode == ERROR_TIME_OUT) {
// handle all types of time out issues, regardless of operation.
} else if ("8.1".equals(smdxSubjectCode) && "3.1".equals(smdxReasonCode)) {
// handle specific subject code and reason code: 8.1 and 4.1 means insufficient memory.
}
Combinaisons d'opérations et de codes d'erreur acceptées
Le tableau suivant décrit la combinaison d'opérations et de codes d'erreur compatibles renvoyés par l'assistant de profil local (LPA).
| Combinaisons d'opérations et de codes d'erreur | |||
|---|---|---|---|
| Code d'opération | Code d'erreur | Description | |
OPERATION_SYSTEM |
Non applicable | Une erreur interne s'est produite. Par exemple, le thread a été interrompu ou une erreur IOException s'est produite. |
|
OPERATION_SIM_SLOT |
Non applicable | Une erreur interne s'est produite lors de l'exécution d'une opération sur un emplacement SIM. | |
ERROR_TIME_OUT |
Le délai a expiré lors de la tentative d'exécution d'une opération sur le logement de carte SIM. | ||
ERROR_EUICC_MISSING |
Aucune eUICC n'est disponible ni active sur l'appareil. | ||
OPERATION_EUICC_CARD |
Non applicable | Une erreur interne s'est produite lors de l'exécution d'une opération eUICC. | |
ERROR_UNSUPPORTED_VERSION |
La version de l'eUICC (puce) et celle de l'EuiccCard (logiciel) ne sont pas compatibles. | ||
ERROR_EUICC_MISSING |
Aucune carte SIM n'est disponible dans l'appareil. Par exemple, l'LPA ne peut pas détecter la carte SIM. | ||
OPERATION_SMDX |
Non applicable | Une erreur interne s'est produite lors de l'exécution d'une opération SM-DP+ ou SM-DS. | |
ERROR_ADDRESS_MISSING |
Aucune adresse SM-DP+ pour télécharger le profil. | ||
ERROR_INVALID_CONFIRMATION_CODE |
Une erreur s'est produite lors de l'analyse du code d'activation (format non valide). | ||
ERROR_CERTIFICATE_ERROR |
Erreur de keystore ou de certificat lors de l'utilisation dans une connexion TLS pour la validation. | ||
ERROR_NO_PROFILES_AVAILABLE |
Aucun profil n'est disponible auprès de SM-DP+. | ||
ERROR_CONNECTION_ERROR |
Impossible de se connecter au serveur. | ||
ERROR_INVALID_RESPONSE |
Réponse incorrecte du serveur SM-DP+/SM-DS. | ||
OPERATION_SWITCH |
Non applicable | Une erreur interne s'est produite lors d'une opération de transfert. | |
ERROR_CARRIER_LOCKED |
Vous n'êtes pas autorisé à changer de profil, car l'appareil est verrouillé par l'opérateur (SIM verrouillée). | ||
OPERATION_DOWNLOAD |
Non applicable | Une erreur interne s'est produite lors d'une opération de téléchargement. | |
ERROR_DISALLOWED_BY_PPR |
La table d'autorisation des règles sur l'eUICC est nulle ou le téléchargement est interdit par la règle de stratégie du profil. | ||
ERROR_INVALID_ACTIVATION_CODE |
Une erreur s'est produite lors de l'analyse du code d'activation (format non valide) ou lors de la tentative de téléchargement sans code d'activation. | ||
ERROR_CARRIER_LOCKED |
Le téléchargement n'est pas autorisé, car l'appareil est verrouillé par l'opérateur (SIM verrouillée). | ||
ERROR_INCOMPATIBLE_CARRIER |
L'opérateur figure sur la liste noire et le LPA ne peut pas télécharger de profil depuis SM-DP+/SM-DS. | ||
ERROR_OPERATION_BUSY |
Le téléchargement du profil est en cours et aucune autre action susceptible de déclencher des changements d'état de la carte SIM n'est autorisée. | ||
OPERATION_METADATA |
Non applicable | Une erreur interne s'est produite lors de l'opération sur les métadonnées. | |
ERROR_INVALID_ACTIVATION_CODE |
Les métadonnées de l'abonnement sont vides, ou le code d'activation qu'elles contiennent est vide ou non valide. | ||
ERROR_INCOMPATIBLE_CARRIER |
L'opérateur figure sur la liste noire et le LPA ne peut pas télécharger le profil de cet opérateur depuis SM-DP+/SM-DS. | ||
OPERATION_EUICC_GSMA |
Non applicable | Une erreur interne s'est produite lors de l'exécution d'une opération eUICC GSMA. | |
ERROR_INSTALL_PROFILE |
Erreur avec l'eUICC lors de l'installation du profil. Par exemple, le profil existe déjà ou l'ICCID ne correspond pas. | ||
ERROR_EUICC_INSUFFICIENT_MEMORY |
Erreur avec l'eUICC lors de l'installation du profil. Mémoire insuffisante sur l'eUICC. | ||
ERROR_DISALLOWED_BY_PPR |
Erreur avec l'eUICC lors de l'installation du profil. Accès interdit par la règle du règlement du profil. | ||
OPERATION_APDU |
Non applicable | Une erreur interne s'est produite lors de l'exécution d'une opération APDU. | |
OPERATION_HTTP |
1-999 |
Le code d'erreur est une valeur d'erreur HTTP. | |
| Code d'opération | Code de la matière | Code du motif | Description |
OPERATION_SMDX_SUBJECT_REASON_CODE |
La chaîne contient trois chiffres séparés par un point, sans zéros au début. Par exemple, 8.1.1. |
La chaîne contient trois chiffres séparés par un point, sans zéros au début. Par exemple, 3.8. |
SubjectCode[5.2.6.1] et ReasonCode[5.2.6.2] de la GSMA (SGP.22 v2.2). Par exemple, un SubjectCode de 8.1.1 et un ReasonCode de 3.8 signifient que l'EID est lié à un autre appareil. |