diff --git a/api/current.txt b/api/current.txt index 1333e4a6c4755..a14ae93e92b94 100644 --- a/api/current.txt +++ b/api/current.txt @@ -45231,6 +45231,7 @@ package android.telephony { method @NonNull @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public android.os.ParcelUuid createSubscriptionGroup(@NonNull java.util.List); method @Deprecated public static android.telephony.SubscriptionManager from(android.content.Context); method public java.util.List getAccessibleSubscriptionInfoList(); + method @Nullable public java.util.List getActiveAndHiddenSubscriptionInfoList(); method public static int getActiveDataSubscriptionId(); method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public android.telephony.SubscriptionInfo getActiveSubscriptionInfo(int); method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public int getActiveSubscriptionInfoCount(); diff --git a/api/system-current.txt b/api/system-current.txt index 9420a286d67ae..dbc71997206ea 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -8484,6 +8484,7 @@ package android.telephony { public class SubscriptionInfo implements android.os.Parcelable { method @Nullable public java.util.List getAccessRules(); method public int getProfileClass(); + method public boolean isGroupDisabled(); } public class SubscriptionManager { @@ -8597,7 +8598,9 @@ package android.telephony { method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isDataEnabledForApn(int); method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isEmergencyAssistanceEnabled(); method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public boolean isIdle(); + method public boolean isModemEnabledForSlot(int); method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public boolean isOffhook(); + method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isOpportunisticNetworkEnabled(); method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isPotentialEmergencyNumber(@NonNull String); method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public boolean isRadioOn(); method @Deprecated @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public boolean isRinging(); @@ -8618,6 +8621,7 @@ package android.telephony { method @Deprecated @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setDataEnabled(int, boolean); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setDataRoamingEnabled(boolean); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setMultiSimCarrierRestriction(boolean); + method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean setOpportunisticNetworkState(boolean); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean setPreferredNetworkTypeBitmask(long); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean setRadio(boolean); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean setRadioPower(boolean); diff --git a/telephony/java/android/telephony/SubscriptionInfo.java b/telephony/java/android/telephony/SubscriptionInfo.java index f527bc3b6df62..9eff809eaf5da 100644 --- a/telephony/java/android/telephony/SubscriptionInfo.java +++ b/telephony/java/android/telephony/SubscriptionInfo.java @@ -654,6 +654,7 @@ public class SubscriptionInfo implements Parcelable { * Return whether the subscription's group is disabled. * @hide */ + @SystemApi public boolean isGroupDisabled() { return mIsGroupDisabled; } diff --git a/telephony/java/android/telephony/SubscriptionManager.java b/telephony/java/android/telephony/SubscriptionManager.java index 1770671b2380d..50c3ad15cd2e3 100644 --- a/telephony/java/android/telephony/SubscriptionManager.java +++ b/telephony/java/android/telephony/SubscriptionManager.java @@ -1283,12 +1283,32 @@ public class SubscriptionManager { } /** - * This is similar to {@link #getActiveSubscriptionInfoList()}, but if userVisibleOnly - * is true, it will filter out the hidden subscriptions. + * Get both hidden and visible SubscriptionInfo(s) of the currently active SIM(s). + * The records will be sorted by {@link SubscriptionInfo#getSimSlotIndex} + * then by {@link SubscriptionInfo#getSubscriptionId}. + * + *

Requires Permission: {@link android.Manifest.permission#READ_PHONE_STATE READ_PHONE_STATE} + * or that the calling app has carrier privileges (see + * {@link TelephonyManager#hasCarrierPrivileges}). In the latter case, only records accessible + * to the calling app are returned. + * + * @return Sorted list of the currently available {@link SubscriptionInfo} + * records on the device. + * This is similar to {@link getActiveSubscriptionInfoList} except that it will return + * both active and hidden SubscriptionInfos. * - * @hide */ - public List getActiveSubscriptionInfoList(boolean userVisibleOnly) { + public @Nullable List getActiveAndHiddenSubscriptionInfoList() { + return getActiveSubscriptionInfoList(/* userVisibleonly */false); + } + + /** + * This is similar to {@link #getActiveSubscriptionInfoList()}, but if userVisibleOnly + * is true, it will filter out the hidden subscriptions. + * + * @hide + */ + public @Nullable List getActiveSubscriptionInfoList(boolean userVisibleOnly) { List activeList = null; try { diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java index 864bf03c14487..a544380fecb85 100644 --- a/telephony/java/android/telephony/TelephonyManager.java +++ b/telephony/java/android/telephony/TelephonyManager.java @@ -10813,6 +10813,7 @@ public class TelephonyManager { * @hide */ @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) + @SystemApi public boolean setOpportunisticNetworkState(boolean enable) { String pkgForDebug = mContext != null ? mContext.getOpPackageName() : ""; boolean ret = false; @@ -10840,6 +10841,7 @@ public class TelephonyManager { * @hide */ @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) + @SystemApi public boolean isOpportunisticNetworkEnabled() { String pkgForDebug = mContext != null ? mContext.getOpPackageName() : ""; boolean isEnabled = false; @@ -11477,6 +11479,7 @@ public class TelephonyManager { * @param slotIndex which slot it's checking. * @hide */ + @SystemApi public boolean isModemEnabledForSlot(int slotIndex) { try { ITelephony telephony = getITelephony();