La API eUICC fournissent des codes d'erreur pour aider les applications et les utilisateurs à résoudre les problèmes liés à télécharger, activer, désactiver et supprimer 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
fournis et
EXTRA_EMBEDDED_SUBSCRIPTION_DETAILED_CODE
est utilisé comme clé pour obtenir le code d'erreur détaillé. À partir de
Android 11, les quatre clés et valeurs suivantes sont
inclus dans l'intent obtenu:
EXTRA_EMBEDDED_SUBSCRIPTION_OPERATION_CODE
: Fournit des informations sur le problème rencontré. 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 été minutée ou l'appareil est verrouillé par l'opérateur. Ce champ n'est pas renseigné dans les les cas suivants:- Le code d'opération est
OPERATION_SMDX_SUBJECT_REASON_CODE
- Il s'agit d'une erreur de niveau inférieur, telle que
IOException
ouInterruptedException
- Le code d'opération est
EXTRA_EMBEDDED_SUBSCRIPTION_SMDX_SUBJECT_CODE
: Utilisé avecEXTRA_EMBEDDED_SUBSCRIPTION_SMDX_REASON_CODE
, qui, ensemble, fournissez les attributs SubjectCode[5.2.6.1] et ReasonCode[5.2.6.2] fournis par GSMA (SGP.22 version 2.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, ensemble, fournissez les attributs SubjectCode[5.2.6.1] et ReasonCode[5.2.6.2] fournis par GSMA (SGP.22 version 2.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 des erreurs spécifiques individuellement. L'exemple suivant montre comment gérer 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 les combinaisons possibles entre opérations et codes d'erreur renvoyés par l'assistant de profil local (LPA).
Combinaisons d'opérations et de codes d'erreur | |||
---|---|---|---|
<ph type="x-smartling-placeholder"></ph> Code d'opération | <ph type="x-smartling-placeholder"></ph> Code d'erreur | Description | |
OPERATION_SYSTEM |
Non applicable | Une erreur interne s'est produite. Par exemple, le thread a été interrompu ou une
IOException erreur s'est produite. |
|
OPERATION_SIM_SLOT |
Non applicable | Une erreur interne s'est produite lors de l'opération de l'emplacement de la carte SIM. | |
ERROR_TIME_OUT |
Expiration du délai lors de la tentative d'opération sur un emplacement SIM. | ||
ERROR_EUICC_MISSING |
Aucun eUICC n'est disponible ni actif 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 |
Les versions eUICC (chip) et EuiccCard (logicielles) ne sont pas compatibles. | ||
ERROR_EUICC_MISSING |
Aucune carte SIM n'est disponible dans l'appareil. Par exemple, le 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 lorsqu'elle est utilisée dans une connexion TLS pour la validation. | ||
ERROR_NO_PROFILES_AVAILABLE |
Aucun profil disponible depuis SM-DP+. | ||
ERROR_CONNECTION_ERROR |
Impossible de créer une connexion au serveur. | ||
ERROR_INVALID_RESPONSE |
Réponse non valide 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 |
Non autorisé à changer de profil, car l'appareil est verrouillé par l'opérateur (carte SIM) verrouillé). | ||
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 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 sans code d'activation. | ||
ERROR_CARRIER_LOCKED |
Téléchargement non autorisé, car l'appareil est verrouillé par l'opérateur (carte SIM) verrouillé). | ||
ERROR_INCOMPATIBLE_CARRIER |
L'opérateur est sur la liste noire et l'application 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 la carte SIM les changements d'état sont autorisés. | ||
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 le Les métadonnées de l'abonnement sont vides ou incorrectes. | ||
ERROR_INCOMPATIBLE_CARRIER |
L'opérateur figure sur la liste noire et l'outil LPA ne peut pas télécharger ses 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 eUICC GSMA. | |
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 eUICC lors de la tentative d'installation du profil. Mémoire insuffisante sur le eUICC. | ||
ERROR_DISALLOWED_BY_PPR |
Erreur eUICC lors de la tentative d'installation du profil. Non autorisé par le Règle de stratégie 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. | |
<ph type="x-smartling-placeholder"></ph> Code d'opération | <ph type="x-smartling-placeholder"></ph> Code du sujet | <ph type="x-smartling-placeholder"></ph> 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. Pour
Exemple : 8.1.1 . |
La chaîne contient trois chiffres séparés par un point, sans zéro au début. Pour
Exemple : 3.8 . |
SubjectCode[5.2.6.1] et ReasonCode[5.2.6.2] de GSMA (SGP.22 v2.2). Pour
exemple, un SubjectCode de 8.1.1 et un ReasonCode de
3.8 signifie que l'EID
est lié à un autre appareil. |