diff --git a/api/current.txt b/api/current.txt index 8dc49a6d1dfa2..a766dc82d993d 100644 --- a/api/current.txt +++ b/api/current.txt @@ -37559,6 +37559,7 @@ package android.telephony { method public android.telephony.TelephonyManager createForSubscriptionId(int); method public java.util.List getAllCellInfo(); method public int getCallState(); + method public android.os.PersistableBundle getCarrierConfig(); method public android.telephony.CellLocation getCellLocation(); method public int getDataActivity(); method public boolean getDataEnabled(); @@ -37576,6 +37577,7 @@ package android.telephony { method public java.lang.String getNetworkCountryIso(); method public java.lang.String getNetworkOperator(); method public java.lang.String getNetworkOperatorName(); + method public java.lang.String getNetworkSpecifier(); method public int getNetworkType(); method public int getPhoneCount(); method public int getPhoneType(); diff --git a/api/system-current.txt b/api/system-current.txt index 307bb9bbd38c5..29d1248e15dfe 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -40748,6 +40748,7 @@ package android.telephony { method public boolean endCall(); method public java.util.List getAllCellInfo(); method public int getCallState(); + method public android.os.PersistableBundle getCarrierConfig(); method public java.util.List getCarrierPackageNamesForIntent(android.content.Intent); method public java.util.List getCarrierPackageNamesForIntentAndPhone(android.content.Intent, int); method public java.lang.String getCdmaMdn(); @@ -40776,6 +40777,7 @@ package android.telephony { method public java.lang.String getNetworkCountryIso(); method public java.lang.String getNetworkOperator(); method public java.lang.String getNetworkOperatorName(); + method public java.lang.String getNetworkSpecifier(); method public int getNetworkType(); method public int getPhoneCount(); method public int getPhoneType(); diff --git a/api/test-current.txt b/api/test-current.txt index 09aaf4cc91230..31cb5573abc38 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -37641,6 +37641,7 @@ package android.telephony { method public android.telephony.TelephonyManager createForSubscriptionId(int); method public java.util.List getAllCellInfo(); method public int getCallState(); + method public android.os.PersistableBundle getCarrierConfig(); method public android.telephony.CellLocation getCellLocation(); method public int getDataActivity(); method public boolean getDataEnabled(); @@ -37658,6 +37659,7 @@ package android.telephony { method public java.lang.String getNetworkCountryIso(); method public java.lang.String getNetworkOperator(); method public java.lang.String getNetworkOperatorName(); + method public java.lang.String getNetworkSpecifier(); method public int getNetworkType(); method public int getPhoneCount(); method public int getPhoneType(); diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java index 6a0aa84426d44..5a15009bb3cf8 100644 --- a/telephony/java/android/telephony/TelephonyManager.java +++ b/telephony/java/android/telephony/TelephonyManager.java @@ -31,6 +31,7 @@ import android.os.ResultReceiver; import android.provider.Settings; import android.provider.Settings.SettingNotFoundException; import android.os.Bundle; +import android.os.PersistableBundle; import android.os.RemoteException; import android.os.ServiceManager; import android.os.SystemProperties; @@ -1416,6 +1417,34 @@ public class TelephonyManager { return getTelephonyProperty(phoneId, TelephonyProperties.PROPERTY_OPERATOR_NUMERIC, ""); } + + /** + * Returns the network specifier of the subscription ID pinned to the TelephonyManager. + * + * @see android.net.NetworkRequest.Builder#setNetworkSpecifier(String) + * @see #createForSubscriptionId(int) + * @see #createForPhoneAccountHandle(PhoneAccountHandle) + */ + public String getNetworkSpecifier() { + return String.valueOf(mSubId); + } + + /** + * Returns the carrier config of the subscription ID pinned to the TelephonyManager. + * + *

Requires Permission: {@link android.Manifest.permission#READ_PHONE_STATE + * READ_PHONE_STATE} + * + * @see CarrierConfigManager#getConfigForSubId(int) + * @see #createForSubscriptionId(int) + * @see #createForPhoneAccountHandle(PhoneAccountHandle) + */ + public PersistableBundle getCarrierConfig() { + CarrierConfigManager carrierConfigManager = mContext + .getSystemService(CarrierConfigManager.class); + return carrierConfigManager.getConfigForSubId(mSubId); + } + /** * Returns true if the device is considered roaming on the current * network, for GSM purposes.