Processar erros da API eUICC

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:

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.