Loading core/java/android/provider/Telephony.java +17 −0 Original line number Diff line number Diff line Loading @@ -3583,6 +3583,23 @@ public final class Telephony { public static final Uri ENFORCE_MANAGED_URI = Uri.parse( "content://telephony/carriers/enforce_managed"); /** * The {@code content://} style URL for the perferred APN used for internet. * * @hide */ public static final Uri PREFERRED_APN_URI = Uri.parse( "content://telephony/carriers/preferapn/subId/"); /** * The {@code content://} style URL for the perferred APN set id. * * @hide */ public static final Uri PREFERRED_APN_SET_URI = Uri.parse( "content://telephony/carriers/preferapnset/subId/"); /** * The column name for ENFORCE_MANAGED_URI, indicates whether DPC-owned APNs are enforced. * @hide Loading telephony/java/android/telephony/Annotation.java +57 −0 Original line number Diff line number Diff line package android.telephony; import android.annotation.IntDef; import android.net.NetworkAgent; import android.net.NetworkCapabilities; import android.telecom.Connection; import android.telephony.data.ApnSetting; Loading Loading @@ -664,4 +666,59 @@ public class Annotation { TelephonyManager.THERMAL_MITIGATION_RESULT_INVALID_STATE, TelephonyManager.THERMAL_MITIGATION_RESULT_UNKNOWN_ERROR}) public @interface ThermalMitigationResult {} /** * Per Android API guideline 8.15, annotation can't be public APIs. So duplicate * android.net.NetworkCapabilities.NetCapability here. Must update here when new capabilities * are added in {@link NetworkCapabilities}. */ @Retention(RetentionPolicy.SOURCE) @IntDef(prefix = { "NET_CAPABILITY_" }, value = { NetworkCapabilities.NET_CAPABILITY_MMS, NetworkCapabilities.NET_CAPABILITY_SUPL, NetworkCapabilities.NET_CAPABILITY_DUN, NetworkCapabilities.NET_CAPABILITY_FOTA, NetworkCapabilities.NET_CAPABILITY_IMS, NetworkCapabilities.NET_CAPABILITY_CBS, NetworkCapabilities.NET_CAPABILITY_WIFI_P2P, NetworkCapabilities.NET_CAPABILITY_IA, NetworkCapabilities.NET_CAPABILITY_RCS, NetworkCapabilities.NET_CAPABILITY_XCAP, NetworkCapabilities.NET_CAPABILITY_EIMS, NetworkCapabilities.NET_CAPABILITY_NOT_METERED, NetworkCapabilities.NET_CAPABILITY_INTERNET, NetworkCapabilities.NET_CAPABILITY_NOT_RESTRICTED, NetworkCapabilities.NET_CAPABILITY_TRUSTED, NetworkCapabilities.NET_CAPABILITY_NOT_VPN, NetworkCapabilities.NET_CAPABILITY_VALIDATED, NetworkCapabilities.NET_CAPABILITY_CAPTIVE_PORTAL, NetworkCapabilities.NET_CAPABILITY_NOT_ROAMING, NetworkCapabilities.NET_CAPABILITY_FOREGROUND, NetworkCapabilities.NET_CAPABILITY_NOT_CONGESTED, NetworkCapabilities.NET_CAPABILITY_NOT_SUSPENDED, NetworkCapabilities.NET_CAPABILITY_OEM_PAID, NetworkCapabilities.NET_CAPABILITY_MCX, NetworkCapabilities.NET_CAPABILITY_PARTIAL_CONNECTIVITY, NetworkCapabilities.NET_CAPABILITY_TEMPORARILY_NOT_METERED, NetworkCapabilities.NET_CAPABILITY_OEM_PRIVATE, NetworkCapabilities.NET_CAPABILITY_VEHICLE_INTERNAL, NetworkCapabilities.NET_CAPABILITY_NOT_VCN_MANAGED, NetworkCapabilities.NET_CAPABILITY_ENTERPRISE, NetworkCapabilities.NET_CAPABILITY_VSIM, NetworkCapabilities.NET_CAPABILITY_BIP, NetworkCapabilities.NET_CAPABILITY_HEAD_UNIT, }) public @interface NetCapability { } /** * Per Android API guideline 8.15, annotation can't be public APIs. So duplicate * android.net.NetworkAgent.ValidationStatus here. Must update here when new validation status * are added in {@link NetworkAgent}. */ @Retention(RetentionPolicy.SOURCE) @IntDef(prefix = { "VALIDATION_STATUS_" }, value = { NetworkAgent.VALIDATION_STATUS_VALID, NetworkAgent.VALIDATION_STATUS_NOT_VALID }) public @interface ValidationStatus {} } telephony/java/android/telephony/CarrierConfigManager.java +1 −1 Original line number Diff line number Diff line Loading @@ -5951,9 +5951,9 @@ public class CarrierConfigManager { "capabilities=eims, retry_interval=1000, maximum_retries=20", "fail_causes=8|27|28|29|30|32|33|35|50|51|111|-5|-6|65537|65538|-3|2253|" + "2254, maximum_retries=0", // No retry for those causes "capabilities=mms|supl|cbs, retry_interval=2000", "capabilities=internet|enterprise|dun|ims|fota, retry_interval=2000, " + "backoff=true, maximum_retries=13", "capabilities=mms|supl|cbs, retry_interval=2000" }); sDefaults.putStringArray(KEY_MISSED_INCOMING_CALL_SMS_PATTERN_STRING_ARRAY, new String[0]); sDefaults.putBoolean(KEY_DISABLE_DUN_APN_WHILE_ROAMING_WITH_PRESET_APN_BOOL, false); Loading telephony/java/android/telephony/DataFailCause.java +7 −0 Original line number Diff line number Diff line Loading @@ -1076,6 +1076,13 @@ public final class DataFailCause { */ public static final int SERVICE_TEMPORARILY_UNAVAILABLE = 0x10009; /** * The request is not supported by the vendor. * * @hide */ public static final int REQUEST_NOT_SUPPORTED = 0x1000A; private static final Map<Integer, String> sFailCauseMap; static { sFailCauseMap = new HashMap<>(); Loading telephony/java/android/telephony/data/DataProfile.java +83 −1 Original line number Diff line number Diff line Loading @@ -22,9 +22,11 @@ import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.SystemApi; import android.net.NetworkCapabilities; import android.os.Parcel; import android.os.Parcelable; import android.telephony.Annotation.ApnType; import android.telephony.Annotation.NetCapability; import android.telephony.TelephonyManager; import android.telephony.TelephonyManager.NetworkTypeBitMask; import android.telephony.data.ApnSetting.AuthType; Loading Loading @@ -66,7 +68,7 @@ public final class DataProfile implements Parcelable { private final @Nullable TrafficDescriptor mTrafficDescriptor; private final boolean mPreferred; private boolean mPreferred; private DataProfile(@NonNull Builder builder) { mApnSetting = builder.mApnSetting; Loading Loading @@ -290,6 +292,16 @@ public final class DataProfile implements Parcelable { return false; } /** * Set the preferred flag for the data profile. * * @param preferred {@code true} if this data profile is preferred for internet. * @hide */ public void setPreferred(boolean preferred) { mPreferred = preferred; } /** * @return {@code true} if this data profile was used to bring up the last default * (i.e internet) data connection successfully, or the one chosen by the user in Settings' Loading @@ -315,6 +327,76 @@ public final class DataProfile implements Parcelable { return mTrafficDescriptor; } /** * Check if this data profile can satisfy certain network capabilities * * @param networkCapabilities The network capabilities. Note that the non-APN-type capabilities * will be ignored. * * @return {@code true} if this data profile can satisfy the given network capabilities. * @hide */ public boolean canSatisfy(@NonNull @NetCapability int[] networkCapabilities) { if (mApnSetting != null) { for (int netCap : networkCapabilities) { if (!canSatisfy(netCap)) { return false; } } return true; } return false; } /** * Check if this data profile can satisfy a certain network capability. * * @param networkCapability The network capability. Note that the non-APN-type capability * will always be satisfied. * @return {@code true} if this data profile can satisfy the given network capability. * @hide */ public boolean canSatisfy(@NetCapability int networkCapability) { return mApnSetting != null && mApnSetting.canHandleType( networkCapabilityToApnType(networkCapability)); } /** * Convert network capability into APN type. * * @param networkCapability Network capability. * @return APN type. * @hide */ private static @ApnType int networkCapabilityToApnType(@NetCapability int networkCapability) { switch (networkCapability) { case NetworkCapabilities.NET_CAPABILITY_MMS: return ApnSetting.TYPE_MMS; case NetworkCapabilities.NET_CAPABILITY_SUPL: return ApnSetting.TYPE_SUPL; case NetworkCapabilities.NET_CAPABILITY_DUN: return ApnSetting.TYPE_DUN; case NetworkCapabilities.NET_CAPABILITY_FOTA: return ApnSetting.TYPE_FOTA; case NetworkCapabilities.NET_CAPABILITY_IMS: return ApnSetting.TYPE_IMS; case NetworkCapabilities.NET_CAPABILITY_CBS: return ApnSetting.TYPE_CBS; case NetworkCapabilities.NET_CAPABILITY_XCAP: return ApnSetting.TYPE_XCAP; case NetworkCapabilities.NET_CAPABILITY_EIMS: return ApnSetting.TYPE_EMERGENCY; case NetworkCapabilities.NET_CAPABILITY_INTERNET: return ApnSetting.TYPE_DEFAULT; case NetworkCapabilities.NET_CAPABILITY_MCX: return ApnSetting.TYPE_MCX; case NetworkCapabilities.NET_CAPABILITY_IA: return ApnSetting.TYPE_IA; default: return ApnSetting.TYPE_NONE; } } @Override public int describeContents() { return 0; Loading Loading
core/java/android/provider/Telephony.java +17 −0 Original line number Diff line number Diff line Loading @@ -3583,6 +3583,23 @@ public final class Telephony { public static final Uri ENFORCE_MANAGED_URI = Uri.parse( "content://telephony/carriers/enforce_managed"); /** * The {@code content://} style URL for the perferred APN used for internet. * * @hide */ public static final Uri PREFERRED_APN_URI = Uri.parse( "content://telephony/carriers/preferapn/subId/"); /** * The {@code content://} style URL for the perferred APN set id. * * @hide */ public static final Uri PREFERRED_APN_SET_URI = Uri.parse( "content://telephony/carriers/preferapnset/subId/"); /** * The column name for ENFORCE_MANAGED_URI, indicates whether DPC-owned APNs are enforced. * @hide Loading
telephony/java/android/telephony/Annotation.java +57 −0 Original line number Diff line number Diff line package android.telephony; import android.annotation.IntDef; import android.net.NetworkAgent; import android.net.NetworkCapabilities; import android.telecom.Connection; import android.telephony.data.ApnSetting; Loading Loading @@ -664,4 +666,59 @@ public class Annotation { TelephonyManager.THERMAL_MITIGATION_RESULT_INVALID_STATE, TelephonyManager.THERMAL_MITIGATION_RESULT_UNKNOWN_ERROR}) public @interface ThermalMitigationResult {} /** * Per Android API guideline 8.15, annotation can't be public APIs. So duplicate * android.net.NetworkCapabilities.NetCapability here. Must update here when new capabilities * are added in {@link NetworkCapabilities}. */ @Retention(RetentionPolicy.SOURCE) @IntDef(prefix = { "NET_CAPABILITY_" }, value = { NetworkCapabilities.NET_CAPABILITY_MMS, NetworkCapabilities.NET_CAPABILITY_SUPL, NetworkCapabilities.NET_CAPABILITY_DUN, NetworkCapabilities.NET_CAPABILITY_FOTA, NetworkCapabilities.NET_CAPABILITY_IMS, NetworkCapabilities.NET_CAPABILITY_CBS, NetworkCapabilities.NET_CAPABILITY_WIFI_P2P, NetworkCapabilities.NET_CAPABILITY_IA, NetworkCapabilities.NET_CAPABILITY_RCS, NetworkCapabilities.NET_CAPABILITY_XCAP, NetworkCapabilities.NET_CAPABILITY_EIMS, NetworkCapabilities.NET_CAPABILITY_NOT_METERED, NetworkCapabilities.NET_CAPABILITY_INTERNET, NetworkCapabilities.NET_CAPABILITY_NOT_RESTRICTED, NetworkCapabilities.NET_CAPABILITY_TRUSTED, NetworkCapabilities.NET_CAPABILITY_NOT_VPN, NetworkCapabilities.NET_CAPABILITY_VALIDATED, NetworkCapabilities.NET_CAPABILITY_CAPTIVE_PORTAL, NetworkCapabilities.NET_CAPABILITY_NOT_ROAMING, NetworkCapabilities.NET_CAPABILITY_FOREGROUND, NetworkCapabilities.NET_CAPABILITY_NOT_CONGESTED, NetworkCapabilities.NET_CAPABILITY_NOT_SUSPENDED, NetworkCapabilities.NET_CAPABILITY_OEM_PAID, NetworkCapabilities.NET_CAPABILITY_MCX, NetworkCapabilities.NET_CAPABILITY_PARTIAL_CONNECTIVITY, NetworkCapabilities.NET_CAPABILITY_TEMPORARILY_NOT_METERED, NetworkCapabilities.NET_CAPABILITY_OEM_PRIVATE, NetworkCapabilities.NET_CAPABILITY_VEHICLE_INTERNAL, NetworkCapabilities.NET_CAPABILITY_NOT_VCN_MANAGED, NetworkCapabilities.NET_CAPABILITY_ENTERPRISE, NetworkCapabilities.NET_CAPABILITY_VSIM, NetworkCapabilities.NET_CAPABILITY_BIP, NetworkCapabilities.NET_CAPABILITY_HEAD_UNIT, }) public @interface NetCapability { } /** * Per Android API guideline 8.15, annotation can't be public APIs. So duplicate * android.net.NetworkAgent.ValidationStatus here. Must update here when new validation status * are added in {@link NetworkAgent}. */ @Retention(RetentionPolicy.SOURCE) @IntDef(prefix = { "VALIDATION_STATUS_" }, value = { NetworkAgent.VALIDATION_STATUS_VALID, NetworkAgent.VALIDATION_STATUS_NOT_VALID }) public @interface ValidationStatus {} }
telephony/java/android/telephony/CarrierConfigManager.java +1 −1 Original line number Diff line number Diff line Loading @@ -5951,9 +5951,9 @@ public class CarrierConfigManager { "capabilities=eims, retry_interval=1000, maximum_retries=20", "fail_causes=8|27|28|29|30|32|33|35|50|51|111|-5|-6|65537|65538|-3|2253|" + "2254, maximum_retries=0", // No retry for those causes "capabilities=mms|supl|cbs, retry_interval=2000", "capabilities=internet|enterprise|dun|ims|fota, retry_interval=2000, " + "backoff=true, maximum_retries=13", "capabilities=mms|supl|cbs, retry_interval=2000" }); sDefaults.putStringArray(KEY_MISSED_INCOMING_CALL_SMS_PATTERN_STRING_ARRAY, new String[0]); sDefaults.putBoolean(KEY_DISABLE_DUN_APN_WHILE_ROAMING_WITH_PRESET_APN_BOOL, false); Loading
telephony/java/android/telephony/DataFailCause.java +7 −0 Original line number Diff line number Diff line Loading @@ -1076,6 +1076,13 @@ public final class DataFailCause { */ public static final int SERVICE_TEMPORARILY_UNAVAILABLE = 0x10009; /** * The request is not supported by the vendor. * * @hide */ public static final int REQUEST_NOT_SUPPORTED = 0x1000A; private static final Map<Integer, String> sFailCauseMap; static { sFailCauseMap = new HashMap<>(); Loading
telephony/java/android/telephony/data/DataProfile.java +83 −1 Original line number Diff line number Diff line Loading @@ -22,9 +22,11 @@ import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.SystemApi; import android.net.NetworkCapabilities; import android.os.Parcel; import android.os.Parcelable; import android.telephony.Annotation.ApnType; import android.telephony.Annotation.NetCapability; import android.telephony.TelephonyManager; import android.telephony.TelephonyManager.NetworkTypeBitMask; import android.telephony.data.ApnSetting.AuthType; Loading Loading @@ -66,7 +68,7 @@ public final class DataProfile implements Parcelable { private final @Nullable TrafficDescriptor mTrafficDescriptor; private final boolean mPreferred; private boolean mPreferred; private DataProfile(@NonNull Builder builder) { mApnSetting = builder.mApnSetting; Loading Loading @@ -290,6 +292,16 @@ public final class DataProfile implements Parcelable { return false; } /** * Set the preferred flag for the data profile. * * @param preferred {@code true} if this data profile is preferred for internet. * @hide */ public void setPreferred(boolean preferred) { mPreferred = preferred; } /** * @return {@code true} if this data profile was used to bring up the last default * (i.e internet) data connection successfully, or the one chosen by the user in Settings' Loading @@ -315,6 +327,76 @@ public final class DataProfile implements Parcelable { return mTrafficDescriptor; } /** * Check if this data profile can satisfy certain network capabilities * * @param networkCapabilities The network capabilities. Note that the non-APN-type capabilities * will be ignored. * * @return {@code true} if this data profile can satisfy the given network capabilities. * @hide */ public boolean canSatisfy(@NonNull @NetCapability int[] networkCapabilities) { if (mApnSetting != null) { for (int netCap : networkCapabilities) { if (!canSatisfy(netCap)) { return false; } } return true; } return false; } /** * Check if this data profile can satisfy a certain network capability. * * @param networkCapability The network capability. Note that the non-APN-type capability * will always be satisfied. * @return {@code true} if this data profile can satisfy the given network capability. * @hide */ public boolean canSatisfy(@NetCapability int networkCapability) { return mApnSetting != null && mApnSetting.canHandleType( networkCapabilityToApnType(networkCapability)); } /** * Convert network capability into APN type. * * @param networkCapability Network capability. * @return APN type. * @hide */ private static @ApnType int networkCapabilityToApnType(@NetCapability int networkCapability) { switch (networkCapability) { case NetworkCapabilities.NET_CAPABILITY_MMS: return ApnSetting.TYPE_MMS; case NetworkCapabilities.NET_CAPABILITY_SUPL: return ApnSetting.TYPE_SUPL; case NetworkCapabilities.NET_CAPABILITY_DUN: return ApnSetting.TYPE_DUN; case NetworkCapabilities.NET_CAPABILITY_FOTA: return ApnSetting.TYPE_FOTA; case NetworkCapabilities.NET_CAPABILITY_IMS: return ApnSetting.TYPE_IMS; case NetworkCapabilities.NET_CAPABILITY_CBS: return ApnSetting.TYPE_CBS; case NetworkCapabilities.NET_CAPABILITY_XCAP: return ApnSetting.TYPE_XCAP; case NetworkCapabilities.NET_CAPABILITY_EIMS: return ApnSetting.TYPE_EMERGENCY; case NetworkCapabilities.NET_CAPABILITY_INTERNET: return ApnSetting.TYPE_DEFAULT; case NetworkCapabilities.NET_CAPABILITY_MCX: return ApnSetting.TYPE_MCX; case NetworkCapabilities.NET_CAPABILITY_IA: return ApnSetting.TYPE_IA; default: return ApnSetting.TYPE_NONE; } } @Override public int describeContents() { return 0; Loading