A APIs eUICC fornecer códigos de erro para ajudar apps e usuários a resolver problemas relacionados a fazer o download, ativar, desativar e excluir perfis de eSIM.
Solucionar erros
Quando ocorre um erro ao chamar a API eUICC, um callback de intent pendente é
fornecidas e
EXTRA_EMBEDDED_SUBSCRIPTION_DETAILED_CODE
é usada como a chave para obter o código de erro detalhado. A partir de
No Android 11, as quatro chaves e valores a seguir são
incluída na intent resultante:
EXTRA_EMBEDDED_SUBSCRIPTION_OPERATION_CODE
: Fornece informações sobre o que deu errado. Por exemplo, fazer o download ou excluir um perfil de eSIM. Esse campo nunca fica vazio.EXTRA_EMBEDDED_SUBSCRIPTION_ERROR_CODE
: Informações sobre o motivo do erro. Por exemplo, a solicitação cronometrada ou o dispositivo está bloqueado pela operadora. Este campo não é preenchido no seguintes casos:- O código de operação é
OPERATION_SMDX_SUBJECT_REASON_CODE
- O erro é de baixo nível, como
IOException
ouInterruptedException
.
- O código de operação é
EXTRA_EMBEDDED_SUBSCRIPTION_SMDX_SUBJECT_CODE
: Usado comEXTRA_EMBEDDED_SUBSCRIPTION_SMDX_REASON_CODE
, que juntos forneça o SubjectCode[5.2.6.1] e o ReasonCode[5.2.6.2] do GSMA (SGP.22). v2.2). Este campo é preenchido somente quando o código de operação éOPERATION_SMDX_SUBJECT_REASON_CODE
EXTRA_EMBEDDED_SUBSCRIPTION_SMDX_REASON_CODE
: Usado comEXTRA_EMBEDDED_SUBSCRIPTION_SMDX_SUBJECT_CODE
, que juntos forneça o SubjectCode[5.2.6.1] e o ReasonCode[5.2.6.2] do GSMA (SGP.22). v2.2). Este campo é preenchido somente quando o código de operação éOPERATION_SMDX_SUBJECT_REASON_CODE
Esses quatro valores permitem que o autor da chamada da API eUICC manipule erros específicos individualmente. Confira a seguir um exemplo de como lidar com esses erros.
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.
}
Combinações compatíveis de operação e código de erro
A tabela a seguir descreve a combinação suportada de operação e códigos de erro retornados pelo assistente de perfil local (LPA, na sigla em inglês).
Combinações de código de erro e operação | |||
---|---|---|---|
Código de operação | Código do erro | Descrição | |
OPERATION_SYSTEM |
Não relevante | Ocorreu um erro interno. Por exemplo, a thread foi interrompida ou uma
Ocorreu IOException erro. |
|
OPERATION_SIM_SLOT |
Não relevante | Ocorreu um erro interno ao realizar uma operação no slot do chip. | |
ERROR_TIME_OUT |
O tempo limite para tentar realizar uma operação no slot do chip expirou. | ||
ERROR_EUICC_MISSING |
Nenhum eUICC está disponível ou ativo no dispositivo. | ||
OPERATION_EUICC_CARD |
Não relevante | Ocorreu um erro interno ao realizar uma operação de eUICC. | |
ERROR_UNSUPPORTED_VERSION |
A versão do eUICC (chip) e a do EuiccCard (software) não são compatíveis. | ||
ERROR_EUICC_MISSING |
Nenhum chip disponível no dispositivo. Por exemplo, o LPA não detecta o chip. | ||
OPERATION_SMDX |
Não relevante | Ocorreu um erro interno ao realizar uma operação SM-DP+/SM-DS. | |
ERROR_ADDRESS_MISSING |
Não há um endereço SM-DP+ para fazer o download do perfil. | ||
ERROR_INVALID_CONFIRMATION_CODE |
Ocorreu um erro ao analisar o código de ativação (formato inválido). | ||
ERROR_CERTIFICATE_ERROR |
Erro de keystore ou certificado quando usado na conexão TLS para verificação. | ||
ERROR_NO_PROFILES_AVAILABLE |
Nenhum perfil disponível no SM-DP+. | ||
ERROR_CONNECTION_ERROR |
Não é possível criar uma conexão com o servidor. | ||
ERROR_INVALID_RESPONSE |
Resposta inválida do servidor SM-DP+/SM-DS. | ||
OPERATION_SWITCH |
Não relevante | Ocorreu um erro interno ao realizar uma operação de interruptor. | |
ERROR_CARRIER_LOCKED |
Não é possível trocar de perfil porque o dispositivo está bloqueado pela operadora (chip bloqueado). | ||
OPERATION_DOWNLOAD |
Não relevante | Ocorreu um erro interno ao realizar uma operação de download. | |
ERROR_DISALLOWED_BY_PPR |
A Tabela de autorização de regras na eUICC é nula ou o download é não permitido pela regra da política de perfil. | ||
ERROR_INVALID_ACTIVATION_CODE |
Ocorreu um erro ao analisar o código de ativação (formato inválido) ou tentando fazer o download sem um código de ativação. | ||
ERROR_CARRIER_LOCKED |
Sem permissão para fazer o download porque o dispositivo está bloqueado pela operadora (chip bloqueado). | ||
ERROR_INCOMPATIBLE_CARRIER |
A operadora está na lista de proibições, e a LPA não pode fazer o download de um perfil SM-DP+/SM-DS. | ||
ERROR_OPERATION_BUSY |
O download do perfil está em andamento e nenhuma outra ação pode acionar o chip alterações de estado são permitidas. | ||
OPERATION_METADATA |
Não relevante | Ocorreu um erro interno ao executar a operação de metadados. | |
ERROR_INVALID_ACTIVATION_CODE |
Os metadados da assinatura estão vazios ou o código de ativação na os metadados da assinatura estão vazios ou são inválidos. | ||
ERROR_INCOMPATIBLE_CARRIER |
A operadora está na lista de proibições, e o LPA não pode fazer o download do SM-DP+/SM-DS. | ||
OPERATION_EUICC_GSMA |
Não relevante | Ocorreu um erro interno ao realizar uma operação de eUICC GSMA. | |
ERROR_INSTALL_PROFILE |
Erro com o eUICC ao tentar instalar o perfil. Por exemplo, o perfil já existe ou o ICCID não corresponde. | ||
ERROR_EUICC_INSUFFICIENT_MEMORY |
Erro com o eUICC ao tentar instalar o perfil. Não há memória suficiente no eUICC. | ||
ERROR_DISALLOWED_BY_PPR |
Erro com o eUICC ao tentar instalar o perfil. Não permitido pelo regra de política de perfil. | ||
OPERATION_APDU |
Não relevante | Ocorreu um erro interno ao executar uma operação de APDU. | |
OPERATION_HTTP |
1-999 |
O código de erro é um valor de erro HTTP. | |
Código de operação | Código do assunto | Código do motivo | Descrição |
OPERATION_SMDX_SUBJECT_REASON_CODE |
A string contém três dígitos separados por ponto, sem zeros à esquerda. Para
exemplo: 8.1.1 . |
A string contém três dígitos separados por ponto sem zeros à esquerda. Para
exemplo: 3.8 . |
SubjectCode[5.2.6.1] e ReasonCode[5.2.6.2] da GSMA (SGP.22 v2.2). Para
exemplo, um SubjectCode de 8.1.1 e um ReasonCode de
3.8 significa o EID
está vinculado a outro dispositivo. |