Loading api/current.txt +2 −1 Original line number Diff line number Diff line Loading @@ -43164,7 +43164,6 @@ package android.telephony { field public static final String EXTRA_STATE_RINGING; field public static final String EXTRA_SUBSCRIPTION_ID = "android.telephony.extra.SUBSCRIPTION_ID"; field public static final String EXTRA_VOICEMAIL_NUMBER = "android.telephony.extra.VOICEMAIL_NUMBER"; field public static final int INVALID_CARD_ID = -1; // 0xffffffff field public static final String METADATA_HIDE_VOICEMAIL_SETTINGS_MENU = "android.telephony.HIDE_VOICEMAIL_SETTINGS_MENU"; field public static final int NETWORK_TYPE_1xRTT = 7; // 0x7 field public static final int NETWORK_TYPE_CDMA = 4; // 0x4 Loading Loading @@ -43200,7 +43199,9 @@ package android.telephony { field public static final int SIM_STATE_PUK_REQUIRED = 3; // 0x3 field public static final int SIM_STATE_READY = 5; // 0x5 field public static final int SIM_STATE_UNKNOWN = 0; // 0x0 field public static final int UNINITIALIZED_CARD_ID = -2; // 0xfffffffe field public static final int UNKNOWN_CARRIER_ID = -1; // 0xffffffff field public static final int UNSUPPORTED_CARD_ID = -1; // 0xffffffff field public static final int USSD_ERROR_SERVICE_UNAVAIL = -2; // 0xfffffffe field public static final int USSD_RETURN_FAILURE = -1; // 0xffffffff field public static final String VVM_TYPE_CVVM = "vvm_type_cvvm"; core/java/android/service/euicc/EuiccService.java +6 −1 Original line number Diff line number Diff line Loading @@ -76,6 +76,11 @@ import java.util.concurrent.atomic.AtomicInteger; * filter with the appropriate action, the {@link #CATEGORY_EUICC_UI} category, and a non-zero * priority. * * <p>Old implementations of EuiccService may support passing in slot IDs equal to * {@link android.telephony.SubscriptionManager#INVALID_SIM_SLOT_INDEX}, which allows the LPA to * decide which eUICC to target when there are multiple eUICCs. This behavior is not supported in * Android Q or later. * * @hide */ @SystemApi Loading Loading @@ -520,7 +525,7 @@ public abstract class EuiccService extends Service { int resultCode = EuiccService.this.onDownloadSubscription( slotId, subscription, switchAfterDownload, forceDeactivateSim); result = new DownloadSubscriptionResult(resultCode, 0 /* resolvableErrors */, TelephonyManager.INVALID_CARD_ID); 0 /* resolvableErrors */, TelephonyManager.UNSUPPORTED_CARD_ID); } try { callback.onComplete(result); Loading telephony/java/android/telephony/TelephonyManager.java +18 −8 Original line number Diff line number Diff line Loading @@ -229,10 +229,19 @@ public class TelephonyManager { public static final int SRVCC_STATE_HANDOVER_CANCELED = 3; /** * An invalid UICC card identifier. See {@link #getCardIdForDefaultEuicc()} and * {@link UiccCardInfo#getCardId()}. * A UICC card identifier used if the device does not support the operation. * For example, {@link #getCardIdForDefaultEuicc()} returns this value if the device has no * eUICC, or the eUICC cannot be read. */ public static final int INVALID_CARD_ID = -1; public static final int UNSUPPORTED_CARD_ID = -1; /** * A UICC card identifier used before the UICC card is loaded. See * {@link #getCardIdForDefaultEuicc()} and {@link UiccCardInfo#getCardId()}. * <p> * Note that once the UICC card is loaded, the card ID may become {@link #UNSUPPORTED_CARD_ID}. */ public static final int UNINITIALIZED_CARD_ID = -2; /** @hide */ @Retention(RetentionPolicy.SOURCE) Loading Loading @@ -3130,24 +3139,25 @@ public class TelephonyManager { } /** * Get the card ID of the default eUICC card. If there is no eUICC, returns * {@link #INVALID_CARD_ID}. * Get the card ID of the default eUICC card. If the eUICCs have not yet been loaded, returns * {@link #UNINITIALIZED_CARD_ID}. If there is no eUICC or the device does not support card IDs * for eUICCs, returns {@link #UNSUPPORTED_CARD_ID}. * * <p>The card ID is a unique identifier associated with a UICC or eUICC card. Card IDs are * unique to a device, and always refer to the same UICC or eUICC card unless the device goes * through a factory reset. * * @return card ID of the default eUICC card. * @return card ID of the default eUICC card, if loaded. */ public int getCardIdForDefaultEuicc() { try { ITelephony telephony = getITelephony(); if (telephony == null) { return INVALID_CARD_ID; return UNINITIALIZED_CARD_ID; } return telephony.getCardIdForDefaultEuicc(mSubId, mContext.getOpPackageName()); } catch (RemoteException e) { return INVALID_CARD_ID; return UNINITIALIZED_CARD_ID; } } Loading telephony/java/android/telephony/euicc/EuiccManager.java +26 −18 Original line number Diff line number Diff line Loading @@ -305,7 +305,7 @@ public class EuiccManager { */ @Nullable public String getEid() { if (!refreshCardIdIfInvalid()) { if (!refreshCardIdIfUninitialized()) { return null; } try { Loading @@ -328,7 +328,7 @@ public class EuiccManager { @SystemApi @RequiresPermission(Manifest.permission.WRITE_EMBEDDED_SUBSCRIPTIONS) public int getOtaStatus() { if (!refreshCardIdIfInvalid()) { if (!refreshCardIdIfUninitialized()) { return EUICC_OTA_STATUS_UNAVAILABLE; } try { Loading Loading @@ -363,7 +363,7 @@ public class EuiccManager { @RequiresPermission(Manifest.permission.WRITE_EMBEDDED_SUBSCRIPTIONS) public void downloadSubscription(DownloadableSubscription subscription, boolean switchAfterDownload, PendingIntent callbackIntent) { if (!refreshCardIdIfInvalid()) { if (!refreshCardIdIfUninitialized()) { sendUnavailableError(callbackIntent); return; } Loading Loading @@ -425,7 +425,7 @@ public class EuiccManager { @SystemApi @RequiresPermission(Manifest.permission.WRITE_EMBEDDED_SUBSCRIPTIONS) public void continueOperation(Intent resolutionIntent, Bundle resolutionExtras) { if (!refreshCardIdIfInvalid()) { if (!refreshCardIdIfUninitialized()) { PendingIntent callbackIntent = resolutionIntent.getParcelableExtra( EuiccManager.EXTRA_EMBEDDED_SUBSCRIPTION_RESOLUTION_CALLBACK_INTENT); Loading Loading @@ -462,7 +462,7 @@ public class EuiccManager { @RequiresPermission(Manifest.permission.WRITE_EMBEDDED_SUBSCRIPTIONS) public void getDownloadableSubscriptionMetadata( DownloadableSubscription subscription, PendingIntent callbackIntent) { if (!refreshCardIdIfInvalid()) { if (!refreshCardIdIfUninitialized()) { sendUnavailableError(callbackIntent); return; } Loading Loading @@ -492,7 +492,7 @@ public class EuiccManager { @SystemApi @RequiresPermission(Manifest.permission.WRITE_EMBEDDED_SUBSCRIPTIONS) public void getDefaultDownloadableSubscriptionList(PendingIntent callbackIntent) { if (!refreshCardIdIfInvalid()) { if (!refreshCardIdIfUninitialized()) { sendUnavailableError(callbackIntent); return; } Loading @@ -511,7 +511,7 @@ public class EuiccManager { */ @Nullable public EuiccInfo getEuiccInfo() { if (!refreshCardIdIfInvalid()) { if (!refreshCardIdIfUninitialized()) { return null; } try { Loading @@ -536,7 +536,7 @@ public class EuiccManager { */ @RequiresPermission(Manifest.permission.WRITE_EMBEDDED_SUBSCRIPTIONS) public void deleteSubscription(int subscriptionId, PendingIntent callbackIntent) { if (!refreshCardIdIfInvalid()) { if (!refreshCardIdIfUninitialized()) { sendUnavailableError(callbackIntent); return; } Loading Loading @@ -576,7 +576,7 @@ public class EuiccManager { */ @RequiresPermission(Manifest.permission.WRITE_EMBEDDED_SUBSCRIPTIONS) public void switchToSubscription(int subscriptionId, PendingIntent callbackIntent) { if (!refreshCardIdIfInvalid()) { if (!refreshCardIdIfUninitialized()) { sendUnavailableError(callbackIntent); return; } Loading @@ -602,7 +602,7 @@ public class EuiccManager { @RequiresPermission(Manifest.permission.WRITE_EMBEDDED_SUBSCRIPTIONS) public void updateSubscriptionNickname( int subscriptionId, String nickname, PendingIntent callbackIntent) { if (!refreshCardIdIfInvalid()) { if (!refreshCardIdIfUninitialized()) { sendUnavailableError(callbackIntent); return; } Loading @@ -626,7 +626,7 @@ public class EuiccManager { @SystemApi @RequiresPermission(Manifest.permission.WRITE_EMBEDDED_SUBSCRIPTIONS) public void eraseSubscriptions(PendingIntent callbackIntent) { if (!refreshCardIdIfInvalid()) { if (!refreshCardIdIfUninitialized()) { sendUnavailableError(callbackIntent); return; } Loading Loading @@ -656,7 +656,7 @@ public class EuiccManager { * @hide */ public void retainSubscriptionsForFactoryReset(PendingIntent callbackIntent) { if (!refreshCardIdIfInvalid()) { if (!refreshCardIdIfUninitialized()) { sendUnavailableError(callbackIntent); return; } Loading @@ -667,16 +667,24 @@ public class EuiccManager { } } private boolean refreshCardIdIfInvalid() { if (!isEnabled()) { return false; } // Refresh mCardId if it's invalid. if (mCardId == TelephonyManager.INVALID_CARD_ID) { /** * Refreshes the cardId if its uninitialized, and returns whether we should continue the * operation. * <p> * Note that after a successful refresh, the mCardId may be TelephonyManager.UNSUPPORTED_CARD_ID * on older HALs. For backwards compatability, we continue to the LPA and let it decide which * card to use. */ private boolean refreshCardIdIfUninitialized() { // Refresh mCardId if its UNINITIALIZED_CARD_ID if (mCardId == TelephonyManager.UNINITIALIZED_CARD_ID) { TelephonyManager tm = (TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE); mCardId = tm.getCardIdForDefaultEuicc(); } if (mCardId == TelephonyManager.UNINITIALIZED_CARD_ID) { return false; } return true; } Loading Loading
api/current.txt +2 −1 Original line number Diff line number Diff line Loading @@ -43164,7 +43164,6 @@ package android.telephony { field public static final String EXTRA_STATE_RINGING; field public static final String EXTRA_SUBSCRIPTION_ID = "android.telephony.extra.SUBSCRIPTION_ID"; field public static final String EXTRA_VOICEMAIL_NUMBER = "android.telephony.extra.VOICEMAIL_NUMBER"; field public static final int INVALID_CARD_ID = -1; // 0xffffffff field public static final String METADATA_HIDE_VOICEMAIL_SETTINGS_MENU = "android.telephony.HIDE_VOICEMAIL_SETTINGS_MENU"; field public static final int NETWORK_TYPE_1xRTT = 7; // 0x7 field public static final int NETWORK_TYPE_CDMA = 4; // 0x4 Loading Loading @@ -43200,7 +43199,9 @@ package android.telephony { field public static final int SIM_STATE_PUK_REQUIRED = 3; // 0x3 field public static final int SIM_STATE_READY = 5; // 0x5 field public static final int SIM_STATE_UNKNOWN = 0; // 0x0 field public static final int UNINITIALIZED_CARD_ID = -2; // 0xfffffffe field public static final int UNKNOWN_CARRIER_ID = -1; // 0xffffffff field public static final int UNSUPPORTED_CARD_ID = -1; // 0xffffffff field public static final int USSD_ERROR_SERVICE_UNAVAIL = -2; // 0xfffffffe field public static final int USSD_RETURN_FAILURE = -1; // 0xffffffff field public static final String VVM_TYPE_CVVM = "vvm_type_cvvm";
core/java/android/service/euicc/EuiccService.java +6 −1 Original line number Diff line number Diff line Loading @@ -76,6 +76,11 @@ import java.util.concurrent.atomic.AtomicInteger; * filter with the appropriate action, the {@link #CATEGORY_EUICC_UI} category, and a non-zero * priority. * * <p>Old implementations of EuiccService may support passing in slot IDs equal to * {@link android.telephony.SubscriptionManager#INVALID_SIM_SLOT_INDEX}, which allows the LPA to * decide which eUICC to target when there are multiple eUICCs. This behavior is not supported in * Android Q or later. * * @hide */ @SystemApi Loading Loading @@ -520,7 +525,7 @@ public abstract class EuiccService extends Service { int resultCode = EuiccService.this.onDownloadSubscription( slotId, subscription, switchAfterDownload, forceDeactivateSim); result = new DownloadSubscriptionResult(resultCode, 0 /* resolvableErrors */, TelephonyManager.INVALID_CARD_ID); 0 /* resolvableErrors */, TelephonyManager.UNSUPPORTED_CARD_ID); } try { callback.onComplete(result); Loading
telephony/java/android/telephony/TelephonyManager.java +18 −8 Original line number Diff line number Diff line Loading @@ -229,10 +229,19 @@ public class TelephonyManager { public static final int SRVCC_STATE_HANDOVER_CANCELED = 3; /** * An invalid UICC card identifier. See {@link #getCardIdForDefaultEuicc()} and * {@link UiccCardInfo#getCardId()}. * A UICC card identifier used if the device does not support the operation. * For example, {@link #getCardIdForDefaultEuicc()} returns this value if the device has no * eUICC, or the eUICC cannot be read. */ public static final int INVALID_CARD_ID = -1; public static final int UNSUPPORTED_CARD_ID = -1; /** * A UICC card identifier used before the UICC card is loaded. See * {@link #getCardIdForDefaultEuicc()} and {@link UiccCardInfo#getCardId()}. * <p> * Note that once the UICC card is loaded, the card ID may become {@link #UNSUPPORTED_CARD_ID}. */ public static final int UNINITIALIZED_CARD_ID = -2; /** @hide */ @Retention(RetentionPolicy.SOURCE) Loading Loading @@ -3130,24 +3139,25 @@ public class TelephonyManager { } /** * Get the card ID of the default eUICC card. If there is no eUICC, returns * {@link #INVALID_CARD_ID}. * Get the card ID of the default eUICC card. If the eUICCs have not yet been loaded, returns * {@link #UNINITIALIZED_CARD_ID}. If there is no eUICC or the device does not support card IDs * for eUICCs, returns {@link #UNSUPPORTED_CARD_ID}. * * <p>The card ID is a unique identifier associated with a UICC or eUICC card. Card IDs are * unique to a device, and always refer to the same UICC or eUICC card unless the device goes * through a factory reset. * * @return card ID of the default eUICC card. * @return card ID of the default eUICC card, if loaded. */ public int getCardIdForDefaultEuicc() { try { ITelephony telephony = getITelephony(); if (telephony == null) { return INVALID_CARD_ID; return UNINITIALIZED_CARD_ID; } return telephony.getCardIdForDefaultEuicc(mSubId, mContext.getOpPackageName()); } catch (RemoteException e) { return INVALID_CARD_ID; return UNINITIALIZED_CARD_ID; } } Loading
telephony/java/android/telephony/euicc/EuiccManager.java +26 −18 Original line number Diff line number Diff line Loading @@ -305,7 +305,7 @@ public class EuiccManager { */ @Nullable public String getEid() { if (!refreshCardIdIfInvalid()) { if (!refreshCardIdIfUninitialized()) { return null; } try { Loading @@ -328,7 +328,7 @@ public class EuiccManager { @SystemApi @RequiresPermission(Manifest.permission.WRITE_EMBEDDED_SUBSCRIPTIONS) public int getOtaStatus() { if (!refreshCardIdIfInvalid()) { if (!refreshCardIdIfUninitialized()) { return EUICC_OTA_STATUS_UNAVAILABLE; } try { Loading Loading @@ -363,7 +363,7 @@ public class EuiccManager { @RequiresPermission(Manifest.permission.WRITE_EMBEDDED_SUBSCRIPTIONS) public void downloadSubscription(DownloadableSubscription subscription, boolean switchAfterDownload, PendingIntent callbackIntent) { if (!refreshCardIdIfInvalid()) { if (!refreshCardIdIfUninitialized()) { sendUnavailableError(callbackIntent); return; } Loading Loading @@ -425,7 +425,7 @@ public class EuiccManager { @SystemApi @RequiresPermission(Manifest.permission.WRITE_EMBEDDED_SUBSCRIPTIONS) public void continueOperation(Intent resolutionIntent, Bundle resolutionExtras) { if (!refreshCardIdIfInvalid()) { if (!refreshCardIdIfUninitialized()) { PendingIntent callbackIntent = resolutionIntent.getParcelableExtra( EuiccManager.EXTRA_EMBEDDED_SUBSCRIPTION_RESOLUTION_CALLBACK_INTENT); Loading Loading @@ -462,7 +462,7 @@ public class EuiccManager { @RequiresPermission(Manifest.permission.WRITE_EMBEDDED_SUBSCRIPTIONS) public void getDownloadableSubscriptionMetadata( DownloadableSubscription subscription, PendingIntent callbackIntent) { if (!refreshCardIdIfInvalid()) { if (!refreshCardIdIfUninitialized()) { sendUnavailableError(callbackIntent); return; } Loading Loading @@ -492,7 +492,7 @@ public class EuiccManager { @SystemApi @RequiresPermission(Manifest.permission.WRITE_EMBEDDED_SUBSCRIPTIONS) public void getDefaultDownloadableSubscriptionList(PendingIntent callbackIntent) { if (!refreshCardIdIfInvalid()) { if (!refreshCardIdIfUninitialized()) { sendUnavailableError(callbackIntent); return; } Loading @@ -511,7 +511,7 @@ public class EuiccManager { */ @Nullable public EuiccInfo getEuiccInfo() { if (!refreshCardIdIfInvalid()) { if (!refreshCardIdIfUninitialized()) { return null; } try { Loading @@ -536,7 +536,7 @@ public class EuiccManager { */ @RequiresPermission(Manifest.permission.WRITE_EMBEDDED_SUBSCRIPTIONS) public void deleteSubscription(int subscriptionId, PendingIntent callbackIntent) { if (!refreshCardIdIfInvalid()) { if (!refreshCardIdIfUninitialized()) { sendUnavailableError(callbackIntent); return; } Loading Loading @@ -576,7 +576,7 @@ public class EuiccManager { */ @RequiresPermission(Manifest.permission.WRITE_EMBEDDED_SUBSCRIPTIONS) public void switchToSubscription(int subscriptionId, PendingIntent callbackIntent) { if (!refreshCardIdIfInvalid()) { if (!refreshCardIdIfUninitialized()) { sendUnavailableError(callbackIntent); return; } Loading @@ -602,7 +602,7 @@ public class EuiccManager { @RequiresPermission(Manifest.permission.WRITE_EMBEDDED_SUBSCRIPTIONS) public void updateSubscriptionNickname( int subscriptionId, String nickname, PendingIntent callbackIntent) { if (!refreshCardIdIfInvalid()) { if (!refreshCardIdIfUninitialized()) { sendUnavailableError(callbackIntent); return; } Loading @@ -626,7 +626,7 @@ public class EuiccManager { @SystemApi @RequiresPermission(Manifest.permission.WRITE_EMBEDDED_SUBSCRIPTIONS) public void eraseSubscriptions(PendingIntent callbackIntent) { if (!refreshCardIdIfInvalid()) { if (!refreshCardIdIfUninitialized()) { sendUnavailableError(callbackIntent); return; } Loading Loading @@ -656,7 +656,7 @@ public class EuiccManager { * @hide */ public void retainSubscriptionsForFactoryReset(PendingIntent callbackIntent) { if (!refreshCardIdIfInvalid()) { if (!refreshCardIdIfUninitialized()) { sendUnavailableError(callbackIntent); return; } Loading @@ -667,16 +667,24 @@ public class EuiccManager { } } private boolean refreshCardIdIfInvalid() { if (!isEnabled()) { return false; } // Refresh mCardId if it's invalid. if (mCardId == TelephonyManager.INVALID_CARD_ID) { /** * Refreshes the cardId if its uninitialized, and returns whether we should continue the * operation. * <p> * Note that after a successful refresh, the mCardId may be TelephonyManager.UNSUPPORTED_CARD_ID * on older HALs. For backwards compatability, we continue to the LPA and let it decide which * card to use. */ private boolean refreshCardIdIfUninitialized() { // Refresh mCardId if its UNINITIALIZED_CARD_ID if (mCardId == TelephonyManager.UNINITIALIZED_CARD_ID) { TelephonyManager tm = (TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE); mCardId = tm.getCardIdForDefaultEuicc(); } if (mCardId == TelephonyManager.UNINITIALIZED_CARD_ID) { return false; } return true; } Loading