Loading api/system-current.txt +17 −0 Original line number Diff line number Diff line Loading @@ -10953,6 +10953,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<android.net.LinkAddress> getAddresses(); services/core/java/com/android/server/TelephonyRegistry.java +2 −33 Original line number Diff line number Diff line Loading @@ -2413,43 +2413,12 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub { Intent intent = new Intent(ACTION_ANY_DATA_CONNECTION_STATE_CHANGED); intent.putExtra(PHONE_CONSTANTS_STATE_KEY, dataStateToString(state)); intent.putExtra(PHONE_CONSTANTS_DATA_APN_KEY, apn); intent.putExtra(PHONE_CONSTANTS_DATA_APN_TYPE_KEY, getApnTypesStringFromBitmask(apnType)); intent.putExtra(PHONE_CONSTANTS_DATA_APN_TYPE_KEY, ApnSetting.getApnTypesStringFromBitmask(apnType)); intent.putExtra(PHONE_CONSTANTS_SUBSCRIPTION_KEY, subId); mContext.sendStickyBroadcastAsUser(intent, UserHandle.ALL); } private static final Map<Integer, String> APN_TYPE_INT_MAP; static { APN_TYPE_INT_MAP = new android.util.ArrayMap<Integer, String>(); APN_TYPE_INT_MAP.put(ApnSetting.TYPE_DEFAULT, "default"); APN_TYPE_INT_MAP.put(ApnSetting.TYPE_MMS, "mms"); APN_TYPE_INT_MAP.put(ApnSetting.TYPE_SUPL, "supl"); APN_TYPE_INT_MAP.put(ApnSetting.TYPE_DUN, "dun"); APN_TYPE_INT_MAP.put(ApnSetting.TYPE_HIPRI, "hipri"); APN_TYPE_INT_MAP.put(ApnSetting.TYPE_FOTA, "fota"); APN_TYPE_INT_MAP.put(ApnSetting.TYPE_IMS, "ims"); APN_TYPE_INT_MAP.put(ApnSetting.TYPE_CBS, "cbs"); APN_TYPE_INT_MAP.put(ApnSetting.TYPE_IA, "ia"); APN_TYPE_INT_MAP.put(ApnSetting.TYPE_EMERGENCY, "emergency"); APN_TYPE_INT_MAP.put(ApnSetting.TYPE_MCX, "mcx"); APN_TYPE_INT_MAP.put(ApnSetting.TYPE_XCAP, "xcap"); } /** * Copy of ApnSetting#getApnTypesStringFromBitmask for legacy broadcast. * @param apnTypeBitmask bitmask of APN types. * @return comma delimited list of APN types. */ private static String getApnTypesStringFromBitmask(int apnTypeBitmask) { List<String> types = new ArrayList<>(); for (Integer type : APN_TYPE_INT_MAP.keySet()) { if ((apnTypeBitmask & type) == type) { types.add(APN_TYPE_INT_MAP.get(type)); } } return android.text.TextUtils.join(",", types); } private void enforceNotifyPermissionOrCarrierPrivilege(String method) { if (checkNotifyPermission()) { return; Loading telephony/java/android/telephony/data/ApnSetting.java +122 −1 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -28,13 +29,14 @@ import android.provider.Telephony; import android.provider.Telephony.Carriers; import android.telephony.Annotation.ApnType; import android.telephony.Annotation.NetworkType; import com.android.telephony.Rlog; import android.telephony.ServiceState; import android.telephony.TelephonyManager; import android.text.TextUtils; import android.util.ArrayMap; import android.util.Log; import com.android.telephony.Rlog; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.net.InetAddress; Loading Loading @@ -123,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.<br/> * APN_TYPE_ALL is a special type to indicate that this APN entry can * service all data connections. * <p> * 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, Loading Loading @@ -1289,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<String> types = new ArrayList<>(); for (Integer type : APN_TYPE_INT_MAP.keySet()) { Loading telephony/java/com/android/internal/telephony/PhoneConstants.java +14 −13 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.internal.telephony; import android.compat.annotation.UnsupportedAppUsage; import android.telephony.data.ApnSetting; /** * @hide Loading Loading @@ -125,32 +126,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, Loading Loading
api/system-current.txt +17 −0 Original line number Diff line number Diff line Loading @@ -10953,6 +10953,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<android.net.LinkAddress> getAddresses();
services/core/java/com/android/server/TelephonyRegistry.java +2 −33 Original line number Diff line number Diff line Loading @@ -2413,43 +2413,12 @@ public class TelephonyRegistry extends ITelephonyRegistry.Stub { Intent intent = new Intent(ACTION_ANY_DATA_CONNECTION_STATE_CHANGED); intent.putExtra(PHONE_CONSTANTS_STATE_KEY, dataStateToString(state)); intent.putExtra(PHONE_CONSTANTS_DATA_APN_KEY, apn); intent.putExtra(PHONE_CONSTANTS_DATA_APN_TYPE_KEY, getApnTypesStringFromBitmask(apnType)); intent.putExtra(PHONE_CONSTANTS_DATA_APN_TYPE_KEY, ApnSetting.getApnTypesStringFromBitmask(apnType)); intent.putExtra(PHONE_CONSTANTS_SUBSCRIPTION_KEY, subId); mContext.sendStickyBroadcastAsUser(intent, UserHandle.ALL); } private static final Map<Integer, String> APN_TYPE_INT_MAP; static { APN_TYPE_INT_MAP = new android.util.ArrayMap<Integer, String>(); APN_TYPE_INT_MAP.put(ApnSetting.TYPE_DEFAULT, "default"); APN_TYPE_INT_MAP.put(ApnSetting.TYPE_MMS, "mms"); APN_TYPE_INT_MAP.put(ApnSetting.TYPE_SUPL, "supl"); APN_TYPE_INT_MAP.put(ApnSetting.TYPE_DUN, "dun"); APN_TYPE_INT_MAP.put(ApnSetting.TYPE_HIPRI, "hipri"); APN_TYPE_INT_MAP.put(ApnSetting.TYPE_FOTA, "fota"); APN_TYPE_INT_MAP.put(ApnSetting.TYPE_IMS, "ims"); APN_TYPE_INT_MAP.put(ApnSetting.TYPE_CBS, "cbs"); APN_TYPE_INT_MAP.put(ApnSetting.TYPE_IA, "ia"); APN_TYPE_INT_MAP.put(ApnSetting.TYPE_EMERGENCY, "emergency"); APN_TYPE_INT_MAP.put(ApnSetting.TYPE_MCX, "mcx"); APN_TYPE_INT_MAP.put(ApnSetting.TYPE_XCAP, "xcap"); } /** * Copy of ApnSetting#getApnTypesStringFromBitmask for legacy broadcast. * @param apnTypeBitmask bitmask of APN types. * @return comma delimited list of APN types. */ private static String getApnTypesStringFromBitmask(int apnTypeBitmask) { List<String> types = new ArrayList<>(); for (Integer type : APN_TYPE_INT_MAP.keySet()) { if ((apnTypeBitmask & type) == type) { types.add(APN_TYPE_INT_MAP.get(type)); } } return android.text.TextUtils.join(",", types); } private void enforceNotifyPermissionOrCarrierPrivilege(String method) { if (checkNotifyPermission()) { return; Loading
telephony/java/android/telephony/data/ApnSetting.java +122 −1 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -28,13 +29,14 @@ import android.provider.Telephony; import android.provider.Telephony.Carriers; import android.telephony.Annotation.ApnType; import android.telephony.Annotation.NetworkType; import com.android.telephony.Rlog; import android.telephony.ServiceState; import android.telephony.TelephonyManager; import android.text.TextUtils; import android.util.ArrayMap; import android.util.Log; import com.android.telephony.Rlog; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.net.InetAddress; Loading Loading @@ -123,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.<br/> * APN_TYPE_ALL is a special type to indicate that this APN entry can * service all data connections. * <p> * 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, Loading Loading @@ -1289,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<String> types = new ArrayList<>(); for (Integer type : APN_TYPE_INT_MAP.keySet()) { Loading
telephony/java/com/android/internal/telephony/PhoneConstants.java +14 −13 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.internal.telephony; import android.compat.annotation.UnsupportedAppUsage; import android.telephony.data.ApnSetting; /** * @hide Loading Loading @@ -125,32 +126,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, Loading