From 5e27237f59aa97e482eb28f71b3662646ec861e3 Mon Sep 17 00:00:00 2001 From: calvinpan Date: Fri, 7 Dec 2018 20:03:48 +0800 Subject: Public SIM_APN_URI uri and deprecated mcc, mnc, mvno_type, mvno_data Deprecated legacy mno and mvno columns to support carrier id and public the SIM_APN_URI to provide app more simplier query current SIM's APN. Bug: 120031619 Test: Build pass. Change-Id: Ie06dfc55248b871c45ff3274de17d6eafd82d846 --- api/current.txt | 11 +++--- telephony/java/android/provider/Telephony.java | 48 +++++++++++++++++++++----- 2 files changed, 45 insertions(+), 14 deletions(-) diff --git a/api/current.txt b/api/current.txt index 56674d5b64a0..1349d8870a86 100755 --- a/api/current.txt +++ b/api/current.txt @@ -37348,22 +37348,23 @@ package android.provider { field public static final android.net.Uri CONTENT_URI; field public static final java.lang.String CURRENT = "current"; field public static final java.lang.String DEFAULT_SORT_ORDER = "name ASC"; - field public static final java.lang.String MCC = "mcc"; + field public static final deprecated java.lang.String MCC = "mcc"; field public static final java.lang.String MMSC = "mmsc"; field public static final java.lang.String MMSPORT = "mmsport"; field public static final java.lang.String MMSPROXY = "mmsproxy"; - field public static final java.lang.String MNC = "mnc"; - field public static final java.lang.String MVNO_MATCH_DATA = "mvno_match_data"; - field public static final java.lang.String MVNO_TYPE = "mvno_type"; + field public static final deprecated java.lang.String MNC = "mnc"; + field public static final deprecated java.lang.String MVNO_MATCH_DATA = "mvno_match_data"; + field public static final deprecated java.lang.String MVNO_TYPE = "mvno_type"; field public static final java.lang.String NAME = "name"; field public static final java.lang.String NETWORK_TYPE_BITMASK = "network_type_bitmask"; - field public static final java.lang.String NUMERIC = "numeric"; + field public static final deprecated java.lang.String NUMERIC = "numeric"; field public static final java.lang.String PASSWORD = "password"; field public static final java.lang.String PORT = "port"; field public static final java.lang.String PROTOCOL = "protocol"; field public static final java.lang.String PROXY = "proxy"; field public static final java.lang.String ROAMING_PROTOCOL = "roaming_protocol"; field public static final java.lang.String SERVER = "server"; + field public static final android.net.Uri SIM_APN_URI; field public static final java.lang.String SUBSCRIPTION_ID = "sub_id"; field public static final java.lang.String TYPE = "type"; field public static final java.lang.String USER = "user"; diff --git a/telephony/java/android/provider/Telephony.java b/telephony/java/android/provider/Telephony.java index 0245768dd22b..3e4482e91d2b 100644 --- a/telephony/java/android/provider/Telephony.java +++ b/telephony/java/android/provider/Telephony.java @@ -2668,9 +2668,25 @@ public final class Telephony { /** * The {@code content://} style URL for this table. + * For MSIM, this will return APNs for the default subscription + * {@link SubscriptionManager#getDefaultSubscriptionId()}. To specify subId for MSIM, + * use {@link Uri#withAppendedPath(Uri, String)} to append with subscription id. */ public static final Uri CONTENT_URI = Uri.parse("content://telephony/carriers"); + /** + * The {@code content://} style URL for this table. Used for APN query based on current + * subscription. Instead of specifying carrier matching information in the selection, + * this API will return all matching APNs from current subscription carrier and queries + * will be applied on top of that. If there is no match for MVNO (Mobile Virtual Network + * Operator) APNs, return APNs from its MNO (based on mccmnc) instead. For MSIM, this will + * return APNs for the default subscription + * {@link SubscriptionManager#getDefaultSubscriptionId()}. To specify subId for MSIM, + * use {@link Uri#withAppendedPath(Uri, String)} to append with subscription id. + */ + public static final Uri SIM_APN_URI = Uri.parse( + "content://telephony/carriers/sim_apn_list"); + /** * The {@code content://} style URL to be called from DevicePolicyManagerService, * can manage DPC-owned APNs. @@ -2681,7 +2697,9 @@ public final class Telephony { /** * The {@code content://} style URL to be called from Telephony to query APNs. * When DPC-owned APNs are enforced, only DPC-owned APNs are returned, otherwise only - * non-DPC-owned APNs are returned. + * non-DPC-owned APNs are returned. For MSIM, this will return APNs for the default + * subscription {@link SubscriptionManager#getDefaultSubscriptionId()}. To specify subId + * for MSIM, use {@link Uri#withAppendedPath(Uri, String)} to append with subscription id. * @hide */ public static final Uri FILTERED_URI = Uri.parse("content://telephony/carriers/filtered"); @@ -2694,13 +2712,6 @@ public final class Telephony { public static final Uri ENFORCE_MANAGED_URI = Uri.parse( "content://telephony/carriers/enforce_managed"); - /** - * The {@code content://} style URL to be called from Telephony to query current APNs. - * @hide - */ - public static final Uri SIM_APN_LIST = Uri.parse( - "content://telephony/carriers/sim_apn_list"); - /** * The column name for ENFORCE_MANAGED_URI, indicates whether DPC-owned APNs are enforced. * @hide @@ -2775,18 +2786,30 @@ public final class Telephony { /** * Mobile Country Code (MCC). *

Type: TEXT

+ * @deprecated Use {@link #SIM_APN_URI} to query APN instead, this API will return + * matching APNs based on current subscription carrier, thus no need to specify MCC and + * other carrier matching information. In the future, Android will not support MCC for + * APN query. */ public static final String MCC = "mcc"; /** * Mobile Network Code (MNC). *

Type: TEXT

+ * @deprecated Use {@link #SIM_APN_URI} to query APN instead, this API will return + * matching APNs based on current subscription carrier, thus no need to specify MNC and + * other carrier matching information. In the future, Android will not support MNC for + * APN query. */ public static final String MNC = "mnc"; /** * Numeric operator ID (as String). Usually {@code MCC + MNC}. *

Type: TEXT

+ * @deprecated Use {@link #SIM_APN_URI} to query APN instead, this API will return + * matching APNs based on current subscription carrier, thus no need to specify Numeric + * and other carrier matching information. In the future, Android will not support Numeric + * for APN query. */ public static final String NUMERIC = "numeric"; @@ -2867,6 +2890,10 @@ public final class Telephony { * MVNO type: * {@code SPN (Service Provider Name), IMSI, GID (Group Identifier Level 1)}. *

Type: TEXT

+ * @deprecated Use {@link #SIM_APN_URI} to query APN instead, this API will return + * matching APNs based on current subscription carrier, thus no need to specify MVNO_TYPE + * and other carrier matching information. In the future, Android will not support MVNO_TYPE + * for APN query. */ public static final String MVNO_TYPE = "mvno_type"; @@ -2879,6 +2906,10 @@ public final class Telephony { *
  • GID: 4E, 33, ...
  • * *

    Type: TEXT

    + * @deprecated Use {@link #SIM_APN_URI} to query APN instead, this API will return + * matching APNs based on current subscription carrier, thus no need to specify + * MVNO_MATCH_DATA and other carrier matching information. In the future, Android will not + * support MVNO_MATCH_DATA for APN query. */ public static final String MVNO_MATCH_DATA = "mvno_match_data"; @@ -3087,7 +3118,6 @@ public final class Telephony { }) @Retention(RetentionPolicy.SOURCE) public @interface EditStatus {} - } /** -- cgit v1.2.3-59-g8ed1b