eUICC API 提供錯誤代碼,協助應用程式和使用者排解與應用程式相關的 下載、啟用、停用及刪除 eSIM 卡設定檔。
處理錯誤
呼叫 eUICC API 時發生錯誤時,待處理意圖回呼為
Google Kubernetes Engine
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) 的 SubjectCode[5.2.6.1] 和 ReasonCode[5.2.6.2] v2.2)。只有在作業代碼為OPERATION_SMDX_SUBJECT_REASON_CODE
。EXTRA_EMBEDDED_SUBSCRIPTION_SMDX_REASON_CODE
: 與EXTRA_EMBEDDED_SUBSCRIPTION_SMDX_SUBJECT_CODE
搭配使用 提供 GSMA (SGP.22) 的 SubjectCode[5.2.6.1] 和 ReasonCode[5.2.6.2] v2.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 (chip) 版本和 EuiccCard (軟體) 版本不是 相容。 | ||
ERROR_EUICC_MISSING |
裝置中沒有 SIM 卡。例如,LPA 無法偵測 。 | ||
OPERATION_SMDX |
不適用 | 執行 SM-DP+/SM-DS 作業時發生內部錯誤。 | |
ERROR_ADDRESS_MISSING |
沒有 SM-DP+ 位址,無法下載設定檔。 | ||
ERROR_INVALID_CONFIRMATION_CODE |
剖析啟用代碼時發生錯誤 (格式無效)。 | ||
ERROR_CERTIFICATE_ERROR |
用於 TLS 連線時發生 KeyStore 或憑證錯誤 驗證。 | ||
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 的「規則授權表」為空值,或者下載為 設定檔政策規則禁止使用。 | ||
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 位數字,中間以點分隔,且前方沒有零。適用對象
例如:8.1.1 。 |
字串包含 3 位數字,並以點號分隔,中間不加入零。適用對象
例如:3.8 。 |
SubjectCode[5.2.6.1] 和 GSMA (SGP.22 v2.2) 的 ReasonCode[5.2.6.2]。適用對象
例如 8.1.1 的 SubjectCode 和 ReasonCode
3.8 是指 EID
繫結至其他裝置。 |