diff options
Diffstat (limited to 'telephony/java/android/telephony/SubscriptionManager.java')
-rw-r--r-- | telephony/java/android/telephony/SubscriptionManager.java | 44 |
1 files changed, 38 insertions, 6 deletions
diff --git a/telephony/java/android/telephony/SubscriptionManager.java b/telephony/java/android/telephony/SubscriptionManager.java index 0ca22460cdc6..21a89f49fa62 100644 --- a/telephony/java/android/telephony/SubscriptionManager.java +++ b/telephony/java/android/telephony/SubscriptionManager.java @@ -31,6 +31,7 @@ import android.annotation.SdkConstant.SdkConstantType; import android.annotation.SuppressAutoDoc; import android.annotation.SystemApi; import android.annotation.SystemService; +import android.annotation.TestApi; import android.annotation.UnsupportedAppUsage; import android.app.BroadcastOptions; import android.app.PendingIntent; @@ -54,6 +55,7 @@ import android.os.ParcelUuid; import android.os.Process; import android.os.RemoteException; import android.os.ServiceManager; +import android.telephony.Annotation.NetworkType; import android.telephony.euicc.EuiccManager; import android.telephony.ims.ImsMmTelManager; import android.util.DisplayMetrics; @@ -895,6 +897,11 @@ public class SubscriptionManager { */ public static final String EXTRA_SUBSCRIPTION_INDEX = "android.telephony.extra.SUBSCRIPTION_INDEX"; + /** + * Integer extra to specify SIM slot index. + */ + public static final String EXTRA_SLOT_INDEX = "android.telephony.extra.SLOT_INDEX"; + private final Context mContext; private volatile INetworkPolicyManager mNetworkPolicy; @@ -1862,13 +1869,27 @@ public class SubscriptionManager { return subId; } - /** @hide */ - public void setDefaultVoiceSubId(int subId) { - if (VDBG) logd("setDefaultVoiceSubId sub id = " + subId); + /** + * Sets the system's default voice subscription id. + * + * On a data-only device, this is a no-op. + * + * May throw a {@link RuntimeException} if the provided subscription id is equal to + * {@link SubscriptionManager#DEFAULT_SUBSCRIPTION_ID} + * + * @param subscriptionId A valid subscription ID to set as the system default, or + * {@link SubscriptionManager#INVALID_SUBSCRIPTION_ID} + * @hide + */ + @SystemApi + @TestApi + @RequiresPermission(Manifest.permission.MODIFY_PHONE_STATE) + public void setDefaultVoiceSubscriptionId(int subscriptionId) { + if (VDBG) logd("setDefaultVoiceSubId sub id = " + subscriptionId); try { ISub iSub = ISub.Stub.asInterface(ServiceManager.getService("isub")); if (iSub != null) { - iSub.setDefaultVoiceSubId(subId); + iSub.setDefaultVoiceSubId(subscriptionId); } } catch (RemoteException ex) { // ignore it @@ -1876,6 +1897,15 @@ public class SubscriptionManager { } /** + * Same as {@link #setDefaultVoiceSubscriptionId(int)}, but preserved for backwards + * compatibility. + * @hide + */ + public void setDefaultVoiceSubId(int subId) { + setDefaultVoiceSubscriptionId(subId); + } + + /** * Return the SubscriptionInfo for default voice subscription. * * Will return null on data only devices, or on error. @@ -2095,13 +2125,13 @@ public class SubscriptionManager { /** @hide */ @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 115609023) public static boolean isValidSlotIndex(int slotIndex) { - return slotIndex >= 0 && slotIndex < TelephonyManager.getDefault().getMaxPhoneCount(); + return slotIndex >= 0 && slotIndex < TelephonyManager.getDefault().getActiveModemCount(); } /** @hide */ @UnsupportedAppUsage public static boolean isValidPhoneId(int phoneId) { - return phoneId >= 0 && phoneId < TelephonyManager.getDefault().getMaxPhoneCount(); + return phoneId >= 0 && phoneId < TelephonyManager.getDefault().getActiveModemCount(); } /** @hide */ @@ -2122,6 +2152,7 @@ public class SubscriptionManager { if (VDBG) logd("putPhoneIdAndSubIdExtra: phoneId=" + phoneId + " subId=" + subId); intent.putExtra(PhoneConstants.SUBSCRIPTION_KEY, subId); intent.putExtra(EXTRA_SUBSCRIPTION_INDEX, subId); + intent.putExtra(EXTRA_SLOT_INDEX, phoneId); intent.putExtra(PhoneConstants.PHONE_KEY, phoneId); } @@ -2957,6 +2988,7 @@ public class SubscriptionManager { * permission or had carrier privilege permission on the subscription. * {@link TelephonyManager#hasCarrierPrivileges()} * + * @throws IllegalStateException if Telephony service is in bad state. * @throws SecurityException if the caller doesn't meet the requirements * outlined above. * |