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 de 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 généré:
EXTRA_EMBEDDED_SUBSCRIPTION_OPERATION_CODE
: fournit des informations sur le problème. (par exemple, télécharger ou supprimer un profil eSIM). Ce champ n'est jamais vide.EXTRA_EMBEDDED_SUBSCRIPTION_ERROR_CODE
: informations sur la raison pour laquelle l'erreur s'est produite. Par exemple, la requête a expiré ou l'appareil est verrouillé par l'opérateur. Ce champ n'est pas renseigné dans les cas suivants:- Le code d'opération est
OPERATION_SMDX_SUBJECT_REASON_CODE
. - L'erreur est une erreur de bas niveau, telle que
IOException
ouInterruptedException
.
- Le code d'opération est
EXTRA_EMBEDDED_SUBSCRIPTION_SMDX_SUBJECT_CODE
: utilisé avecEXTRA_EMBEDDED_SUBSCRIPTION_SMDX_REASON_CODE
, qui fournit ensemble les valeurs SubjectCode[5.2.6.1] et ReasonCode[5.2.6.2] de la 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 fournit ensemble les valeurs SubjectCode[5.2.6.1] et ReasonCode[5.2.6.2] de la 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 les 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 compatibles
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 le port SIM. | |
ERROR_TIME_OUT |
Le délai a expiré lors de la tentative d'effectuer une opération sur le port 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 eUICC (puce) et la version EuiccCard (logicielle) ne sont pas compatibles. | ||
ERROR_EUICC_MISSING |
Aucune carte SIM n'est disponible dans l'appareil. Par exemple, la 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+/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 d'une connexion TLS pour la validation. | ||
ERROR_NO_PROFILES_AVAILABLE |
Aucun profil n'est disponible à partir du SM-DP+. | ||
ERROR_CONNECTION_ERROR |
Impossible de créer une connexion 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 de l'exécution d'une opération de commutateur. | |
ERROR_CARRIER_LOCKED |
Impossible de changer de profil, car l'appareil est verrouillé par l'opérateur (verrouillage de la carte SIM). | ||
OPERATION_DOWNLOAD |
Non applicable | Une erreur interne s'est produite lors d'un téléchargement. | |
ERROR_DISALLOWED_BY_PPR |
Le tableau d'autorisation des règles sur l'eUICC est nul ou le téléchargement est interdit par la règle de stratégie de profil. | ||
ERROR_INVALID_ACTIVATION_CODE |
Une erreur s'est produite lors de l'analyse du code d'activation (format incorrect) 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 (verrouillage de la carte SIM). | ||
ERROR_INCOMPATIBLE_CARRIER |
L'opérateur figure sur la liste de blocage et l'opérateur de téléphonie mobile ne peut pas télécharger de profil à partir de SM-DP+/SM-DS. | ||
ERROR_OPERATION_BUSY |
Le téléchargement du profil est en cours et aucune autre action pouvant déclencher des modifications 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 de métadonnées. | |
ERROR_INVALID_ACTIVATION_CODE |
Les métadonnées de l'abonnement sont vides, ou le code d'activation dans les métadonnées de l'abonnement est vide ou non valide. | ||
ERROR_INCOMPATIBLE_CARRIER |
L'opérateur figure sur la liste de blocage et l'LPA ne peut pas télécharger son profil à partir de SM-DP+/SM-DS. | ||
OPERATION_EUICC_GSMA |
Non applicable | Une erreur interne s'est produite lors de l'exécution d'une opération GSMA eUICC. | |
ERROR_INSTALL_PROFILE |
Erreur eUICC lors de la tentative d'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 la tentative d'installation du profil. Mémoire insuffisante sur l'eUICC. | ||
ERROR_DISALLOWED_BY_PPR |
Erreur eUICC lors de la tentative d'installation du profil. Non autorisé par la règle de stratégie de 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 l'objet | 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. Exemple : 3.8 . |
SubjectCode[5.2.6.1] et ReasonCode[5.2.6.2] de la GSMA (SGP.22 v2.2) Par exemple, un code SubjectCode de 8.1.1 et un code ReasonCode de 3.8 signifient que l'EID est associé à un autre appareil. |