summaryrefslogtreecommitdiff
path: root/telephony/java/android/telephony/SubscriptionManager.java
diff options
context:
space:
mode:
Diffstat (limited to 'telephony/java/android/telephony/SubscriptionManager.java')
-rw-r--r--telephony/java/android/telephony/SubscriptionManager.java44
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.
*