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. |