diff --git a/api/system-current.txt b/api/system-current.txt index 764a386e45ef8..66eb46eb2e770 100755 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -9591,6 +9591,23 @@ package android.telephony.cdma { package android.telephony.data { + public class ApnSetting implements android.os.Parcelable { + method @NonNull public static String getApnTypesStringFromBitmask(int); + field public static final String TYPE_ALL_STRING = "*"; + field public static final String TYPE_CBS_STRING = "cbs"; + field public static final String TYPE_DEFAULT_STRING = "default"; + field public static final String TYPE_DUN_STRING = "dun"; + field public static final String TYPE_EMERGENCY_STRING = "emergency"; + field public static final String TYPE_FOTA_STRING = "fota"; + field public static final String TYPE_HIPRI_STRING = "hipri"; + field public static final String TYPE_IA_STRING = "ia"; + field public static final String TYPE_IMS_STRING = "ims"; + field public static final String TYPE_MCX_STRING = "mcx"; + field public static final String TYPE_MMS_STRING = "mms"; + field public static final String TYPE_SUPL_STRING = "supl"; + field public static final String TYPE_XCAP_STRING = "xcap"; + } + public final class DataCallResponse implements android.os.Parcelable { method public int describeContents(); method @NonNull public java.util.List getAddresses(); diff --git a/telephony/java/android/telephony/data/ApnSetting.java b/telephony/java/android/telephony/data/ApnSetting.java index de4b61163fb56..6e630e3a70248 100644 --- a/telephony/java/android/telephony/data/ApnSetting.java +++ b/telephony/java/android/telephony/data/ApnSetting.java @@ -18,6 +18,7 @@ package android.telephony.data; import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.Nullable; +import android.annotation.SystemApi; import android.content.ContentValues; import android.database.Cursor; import android.hardware.radio.V1_5.ApnTypes; @@ -124,6 +125,122 @@ public class ApnSetting implements Parcelable { /** Authentication type for PAP or CHAP. */ public static final int AUTH_TYPE_PAP_OR_CHAP = 3; + /** + * APN types for data connections. These are usage categories for an APN + * entry. One APN entry may support multiple APN types, eg, a single APN + * may service regular internet traffic ("default") as well as MMS-specific + * connections.
+ * APN_TYPE_ALL is a special type to indicate that this APN entry can + * service all data connections. + *

+ * Note: The goal is to deprecate this. Due to the Carrier Table being used + * directly, this isn't feasible right now. + * + * @hide + */ + @SystemApi + public static final String TYPE_ALL_STRING = "*"; + + /** + * APN type for default data traffic + * + * @hide + */ + @SystemApi + public static final String TYPE_DEFAULT_STRING = "default"; + + + /** + * APN type for MMS traffic + * + * @hide + */ + @SystemApi + public static final String TYPE_MMS_STRING = "mms"; + + + /** + * APN type for SUPL assisted GPS + * + * @hide + */ + @SystemApi + public static final String TYPE_SUPL_STRING = "supl"; + + /** + * APN type for DUN traffic + * + * @hide + */ + @SystemApi + public static final String TYPE_DUN_STRING = "dun"; + + /** + * APN type for HiPri traffic + * + * @hide + */ + @SystemApi + public static final String TYPE_HIPRI_STRING = "hipri"; + + /** + * APN type for FOTA + * + * @hide + */ + @SystemApi + public static final String TYPE_FOTA_STRING = "fota"; + + /** + * APN type for IMS + * + * @hide + */ + @SystemApi + public static final String TYPE_IMS_STRING = "ims"; + + /** + * APN type for CBS + * + * @hide + */ + @SystemApi + public static final String TYPE_CBS_STRING = "cbs"; + + /** + * APN type for IA Initial Attach APN + * + * @hide + */ + @SystemApi + public static final String TYPE_IA_STRING = "ia"; + + /** + * APN type for Emergency PDN. This is not an IA apn, but is used + * for access to carrier services in an emergency call situation. + * + * @hide + */ + @SystemApi + public static final String TYPE_EMERGENCY_STRING = "emergency"; + + /** + * APN type for Mission Critical Services + * + * @hide + */ + @SystemApi + public static final String TYPE_MCX_STRING = "mcx"; + + /** + * APN type for XCAP + * + * @hide + */ + @SystemApi + public static final String TYPE_XCAP_STRING = "xcap"; + + /** @hide */ @IntDef(prefix = { "AUTH_TYPE_" }, value = { AUTH_TYPE_NONE, @@ -1290,10 +1407,13 @@ public class ApnSetting implements Parcelable { } /** + * Converts the integer value of an APN type to the string version. * @param apnTypeBitmask bitmask of APN types. * @return comma delimited list of APN types. * @hide */ + @SystemApi + @NonNull public static String getApnTypesStringFromBitmask(int apnTypeBitmask) { List types = new ArrayList<>(); for (Integer type : APN_TYPE_INT_MAP.keySet()) { diff --git a/telephony/java/com/android/internal/telephony/PhoneConstants.java b/telephony/java/com/android/internal/telephony/PhoneConstants.java index 7ec22698edb46..9a3f7c9e2cf94 100644 --- a/telephony/java/com/android/internal/telephony/PhoneConstants.java +++ b/telephony/java/com/android/internal/telephony/PhoneConstants.java @@ -16,6 +16,7 @@ package com.android.internal.telephony; import android.compat.annotation.UnsupportedAppUsage; +import android.telephony.data.ApnSetting; /** * @hide @@ -131,32 +132,32 @@ public class PhoneConstants { * APN_TYPE_ALL is a special type to indicate that this APN entry can * service all data connections. */ - public static final String APN_TYPE_ALL = "*"; + public static final String APN_TYPE_ALL = ApnSetting.TYPE_ALL_STRING; /** APN type for default data traffic */ - public static final String APN_TYPE_DEFAULT = "default"; + public static final String APN_TYPE_DEFAULT = ApnSetting.TYPE_DEFAULT_STRING; /** APN type for MMS traffic */ - public static final String APN_TYPE_MMS = "mms"; + public static final String APN_TYPE_MMS = ApnSetting.TYPE_MMS_STRING; /** APN type for SUPL assisted GPS */ - public static final String APN_TYPE_SUPL = "supl"; + public static final String APN_TYPE_SUPL = ApnSetting.TYPE_SUPL_STRING; /** APN type for DUN traffic */ - public static final String APN_TYPE_DUN = "dun"; + public static final String APN_TYPE_DUN = ApnSetting.TYPE_DUN_STRING; /** APN type for HiPri traffic */ - public static final String APN_TYPE_HIPRI = "hipri"; + public static final String APN_TYPE_HIPRI = ApnSetting.TYPE_HIPRI_STRING; /** APN type for FOTA */ - public static final String APN_TYPE_FOTA = "fota"; + public static final String APN_TYPE_FOTA = ApnSetting.TYPE_FOTA_STRING; /** APN type for IMS */ - public static final String APN_TYPE_IMS = "ims"; + public static final String APN_TYPE_IMS = ApnSetting.TYPE_IMS_STRING; /** APN type for CBS */ - public static final String APN_TYPE_CBS = "cbs"; + public static final String APN_TYPE_CBS = ApnSetting.TYPE_CBS_STRING; /** APN type for IA Initial Attach APN */ - public static final String APN_TYPE_IA = "ia"; + public static final String APN_TYPE_IA = ApnSetting.TYPE_IA_STRING; /** APN type for Emergency PDN. This is not an IA apn, but is used * for access to carrier services in an emergency call situation. */ - public static final String APN_TYPE_EMERGENCY = "emergency"; + public static final String APN_TYPE_EMERGENCY = ApnSetting.TYPE_EMERGENCY_STRING; /** APN type for Mission Critical Services */ - public static final String APN_TYPE_MCX = "mcx"; + public static final String APN_TYPE_MCX = ApnSetting.TYPE_MCX_STRING; /** APN type for XCAP */ - public static final String APN_TYPE_XCAP = "xcap"; + public static final String APN_TYPE_XCAP = ApnSetting.TYPE_XCAP_STRING; /** Array of all APN types */ public static final String[] APN_TYPES = {APN_TYPE_DEFAULT, APN_TYPE_MMS,