eUICC API는 앱과 사용자가 eSIM 프로필의 다운로드, 사용 설정, 사용 중지, 삭제와 관련된 문제를 해결하는 데 도움이 되는 오류 코드를 제공합니다.
오류 처리
eUICC API를 호출하는 동안 오류가 발생하면 대기 중인 인텐트 콜백이 제공되고 EXTRA_EMBEDDED_SUBSCRIPTION_DETAILED_CODE
가 세부 오류 코드를 가져오기 위한 키로 사용됩니다. Android 11부터 다음 네 개의 키와 값이 결과 인텐트에 포함됩니다.
EXTRA_EMBEDDED_SUBSCRIPTION_OPERATION_CODE
: 무엇이 잘못되었는지에 관한 정보를 제공합니다. 예를 들어 eSIM 프로필을 다운로드하거나 삭제한 경우입니다. 이 필드는 비어 있지 않습니다.EXTRA_EMBEDDED_SUBSCRIPTION_ERROR_CODE
: 오류가 발생한 이유에 관한 정보입니다. 예를 들어 요청이 시간 초과되었거나 기기가 이동통신사 잠금 상태인 경우입니다. 이 필드는 다음과 같은 경우에 채워지지 않습니다.- 작업 코드가
OPERATION_SMDX_SUBJECT_REASON_CODE
인 경우 - 오류가
IOException
또는InterruptedException
같은 하위 수준 오류인 경우
- 작업 코드가
EXTRA_EMBEDDED_SUBSCRIPTION_SMDX_SUBJECT_CODE
:EXTRA_EMBEDDED_SUBSCRIPTION_SMDX_REASON_CODE
와 함께 사용되며 GSMA(SGP.22 v2.2)의 SubjectCode[5.2.6.1] 및 ReasonCode[5.2.6.2]를 제공합니다. 이 필드는 작업 코드가OPERATION_SMDX_SUBJECT_REASON_CODE
인 경우에만 채워집니다.EXTRA_EMBEDDED_SUBSCRIPTION_SMDX_REASON_CODE
:EXTRA_EMBEDDED_SUBSCRIPTION_SMDX_SUBJECT_CODE
와 함께 사용되며 GSMA(SGP.22 v2.2)의 SubjectCode[5.2.6.1] 및 ReasonCode[5.2.6.2]를 제공합니다. 이 필드는 작업 코드가OPERATION_SMDX_SUBJECT_REASON_CODE
인 경우에만 채워집니다.
이러한 네 개의 코드 값을 통해 eUICC API의 호출자가 특정 오류를 개별적으로 처리할 수 있습니다. 다음은 특정 오류를 처리하는 방법의 예입니다.
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.
}
지원되는 작업 코드와 오류 코드 조합
다음 표에서는 로컬 프로필 도우미(LPA)에서 반환되는 작업 코드와 오류 코드의 지원되는 조합을 설명합니다.
작업 코드와 오류 코드 조합 | |||
---|---|---|---|
작업 코드 | 오류 코드 | 설명 | |
OPERATION_SYSTEM |
해당 사항 없음 | 내부 오류가 발생했습니다. 예를 들어 스레드가 중단되거나 IOException 오류가 발생했습니다. |
|
OPERATION_SIM_SLOT |
해당 사항 없음 | SIM 슬롯 작업을 실행하는 중에 내부 오류가 발생했습니다. | |
ERROR_TIME_OUT |
SIM 슬롯 작업을 실행하려는 중에 시간이 초과되었습니다. | ||
ERROR_EUICC_MISSING |
기기에서 eUICC를 사용하거나 활성화할 수 없습니다. | ||
OPERATION_EUICC_CARD |
해당 사항 없음 | eUICC 작업을 실행하는 중에 내부 오류가 발생했습니다. | |
ERROR_UNSUPPORTED_VERSION |
eUICC(칩) 버전과 EuiccCard(소프트웨어) 버전이 호환되지 않습니다. | ||
ERROR_EUICC_MISSING |
기기에서 사용할 수 있는 SIM 카드가 없습니다. 예를 들어 LPA가 SIM 카드를 감지할 수 없습니다. | ||
OPERATION_SMDX |
해당 사항 없음 | SM-DP+/SM-DS 작업을 실행하는 중에 내부 오류가 발생했습니다. | |
ERROR_ADDRESS_MISSING |
프로필을 다운로드할 SM-DP+ 주소가 없습니다. | ||
ERROR_INVALID_CONFIRMATION_CODE |
활성화 코드(잘못된 형식)를 파싱하는 중에 오류가 발생했습니다. | ||
ERROR_CERTIFICATE_ERROR |
TLS 연결에서 인증용으로 사용하는 키 저장소 또는 인증서의 오류입니다. | ||
ERROR_NO_PROFILES_AVAILABLE |
SM-DP+에서 사용할 수 있는 프로필이 없습니다. | ||
ERROR_CONNECTION_ERROR |
서버에 연결할 수 없습니다. | ||
ERROR_INVALID_RESPONSE |
SM-DP+/SM-DS 서버의 응답이 잘못되었습니다. | ||
OPERATION_SWITCH |
해당 사항 없음 | 전환 작업을 실행하는 중에 내부 오류가 발생했습니다. | |
ERROR_CARRIER_LOCKED |
기기가 이동통신사 잠금(SIM 잠금)되어 있어 프로필을 전환할 수 없습니다. | ||
OPERATION_DOWNLOAD |
해당 사항 없음 | 다운로드 작업을 실행하는 중에 내부 오류가 발생했습니다. | |
ERROR_DISALLOWED_BY_PPR |
eUICC의 규칙 승인 테이블이 null이거나 프로필 정책 규칙에 따라 다운로드가 허용되지 않습니다. | ||
ERROR_INVALID_ACTIVATION_CODE |
활성화 코드(잘못된 형식)를 파싱하거나 활성화 코드 없이 다운로드를 하려고 할 때 오류가 발생했습니다. | ||
ERROR_CARRIER_LOCKED |
기기가 이동통신사 잠금(SIM 잠금)되어 있어 다운로드할 수 없습니다. | ||
ERROR_INCOMPATIBLE_CARRIER |
이동통신사가 차단 목록에 있어 LPA가 SM-DP+/SM-DS에서 프로필을 다운로드할 수 없습니다. | ||
ERROR_OPERATION_BUSY |
프로필 다운로드가 진행 중이기 때문에 SIM 상태를 변경할 수 있는 다른 작업은 허용되지 않습니다. | ||
OPERATION_METADATA |
해당 사항 없음 | 메타데이터 작업을 실행하는 중에 내부 오류가 발생했습니다. | |
ERROR_INVALID_ACTIVATION_CODE |
구독 메타데이터가 비어 있거나 구독 메타데이터 내의 활성화 코드가 비어 있거나 잘못되었습니다. | ||
ERROR_INCOMPATIBLE_CARRIER |
이동통신사가 차단 목록에 있어 LPA가 SM-DP+/SM-DS에서 이 이동통신사의 프로필을 다운로드할 수 없습니다. | ||
OPERATION_EUICC_GSMA |
해당 사항 없음 | eUICC GSMA 작업을 실행하는 중에 내부 오류가 발생했습니다. | |
ERROR_INSTALL_PROFILE |
프로필을 설치하는 중에 eUICC 오류가 발생했습니다. 예를 들어 프로필이 이미 존재하거나 ICCID가 일치하지 않습니다. | ||
ERROR_EUICC_INSUFFICIENT_MEMORY |
프로필을 설치하는 중에 eUICC 오류가 발생했습니다. eUICC의 메모리가 부족합니다. | ||
ERROR_DISALLOWED_BY_PPR |
프로필을 설치하는 중에 eUICC 오류가 발생했습니다. 프로필 정책 규칙에 따라 허용되지 않습니다. | ||
OPERATION_APDU |
해당 사항 없음 | APDU 작업을 실행하는 중에 내부 오류가 발생했습니다. | |
OPERATION_HTTP |
1-999 |
오류 코드가 HTTP 오류 값입니다. | |
작업 코드 | 대상 코드 | 이유 코드 | 설명 |
OPERATION_SMDX_SUBJECT_REASON_CODE |
문자열에 3자리 숫자가 점으로 구분되어 있으며 선행 0이 없습니다. 예: 8.1.1 . |
문자열에 3자리 숫자가 점으로 구분되어 있으며 선행 0이 없습니다. 예: 3.8 . |
GSMA(SGP.22 v2.2)의 SubjectCode[5.2.6.1] 및 ReasonCode[5.2.6.2]. 예를 들어 SubjectCode가 8.1.1 이고 ReasonCode가 3.8 인 경우 EID가 다른 기기에 바인딩됨을 의미합니다. |