diff options
| author | Peter Wang <tpwang@google.com> | 2020-01-09 00:07:48 +0000 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2020-01-09 00:07:48 +0000 |
| commit | eeea33fb80dd92dd9c68e9d74de2c70474f82f50 (patch) | |
| tree | 998e9f6cbf8d46d4e16435a5b1243fa63ebbaa6b /core/java/android | |
| parent | c21302c8030c807cffa5ed39724598f8504bed98 (diff) | |
| parent | 37916d6213461974d73772f3b0ef38e1f5ec773b (diff) | |
Merge "[Telephony Mainline] Expose APIs in SubscriptionManager"
Diffstat (limited to 'core/java/android')
| -rw-r--r-- | core/java/android/provider/Settings.java | 28 | ||||
| -rw-r--r-- | core/java/android/provider/Telephony.java | 399 |
2 files changed, 413 insertions, 14 deletions
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index bbaf94ad6ea0..07cbcfbb298b 100644 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -68,7 +68,6 @@ import android.os.ResultReceiver; import android.os.ServiceManager; import android.os.UserHandle; import android.speech.tts.TextToSpeech; -import android.telephony.SubscriptionManager; import android.text.TextUtils; import android.util.AndroidException; import android.util.ArrayMap; @@ -12459,16 +12458,17 @@ public final class Settings { /** * Whether the Volte is enabled. If this setting is not set then we use the Carrier Config - * value {@link CarrierConfigManager#KEY_ENHANCED_4G_LTE_ON_BY_DEFAULT_BOOL}. + * value + * {@link android.telephony.CarrierConfigManager#KEY_ENHANCED_4G_LTE_ON_BY_DEFAULT_BOOL}. * <p> * Type: int (0 for false, 1 for true) * @hide - * @deprecated Use {@link android.telephony.SubscriptionManager#ENHANCED_4G_MODE_ENABLED} + * @deprecated Use {@link android.provider.Telephony.SimInfo#ENHANCED_4G_MODE_ENABLED} * instead. */ @Deprecated public static final String ENHANCED_4G_MODE_ENABLED = - SubscriptionManager.ENHANCED_4G_MODE_ENABLED; + Telephony.SimInfo.ENHANCED_4G_MODE_ENABLED; /** * Whether VT (Video Telephony over IMS) is enabled @@ -12476,10 +12476,10 @@ public final class Settings { * Type: int (0 for false, 1 for true) * * @hide - * @deprecated Use {@link android.telephony.SubscriptionManager#VT_IMS_ENABLED} instead. + * @deprecated Use {@link android.provider.Telephony.SimInfo#VT_IMS_ENABLED} instead. */ @Deprecated - public static final String VT_IMS_ENABLED = SubscriptionManager.VT_IMS_ENABLED; + public static final String VT_IMS_ENABLED = Telephony.SimInfo.VT_IMS_ENABLED; /** * Whether WFC is enabled @@ -12487,10 +12487,10 @@ public final class Settings { * Type: int (0 for false, 1 for true) * * @hide - * @deprecated Use {@link android.telephony.SubscriptionManager#WFC_IMS_ENABLED} instead. + * @deprecated Use {@link android.provider.Telephony.SimInfo#WFC_IMS_ENABLED} instead. */ @Deprecated - public static final String WFC_IMS_ENABLED = SubscriptionManager.WFC_IMS_ENABLED; + public static final String WFC_IMS_ENABLED = Telephony.SimInfo.WFC_IMS_ENABLED; /** * WFC mode on home/non-roaming network. @@ -12498,10 +12498,10 @@ public final class Settings { * Type: int - 2=Wi-Fi preferred, 1=Cellular preferred, 0=Wi-Fi only * * @hide - * @deprecated Use {@link android.telephony.SubscriptionManager#WFC_IMS_MODE} instead. + * @deprecated Use {@link android.provider.Telephony.SimInfo#WFC_IMS_MODE} instead. */ @Deprecated - public static final String WFC_IMS_MODE = SubscriptionManager.WFC_IMS_MODE; + public static final String WFC_IMS_MODE = Telephony.SimInfo.WFC_IMS_MODE; /** * WFC mode on roaming network. @@ -12509,11 +12509,11 @@ public final class Settings { * Type: int - see {@link #WFC_IMS_MODE} for values * * @hide - * @deprecated Use {@link android.telephony.SubscriptionManager#WFC_IMS_ROAMING_MODE} + * @deprecated Use {@link android.provider.Telephony.SimInfo#WFC_IMS_ROAMING_MODE} * instead. */ @Deprecated - public static final String WFC_IMS_ROAMING_MODE = SubscriptionManager.WFC_IMS_ROAMING_MODE; + public static final String WFC_IMS_ROAMING_MODE = Telephony.SimInfo.WFC_IMS_ROAMING_MODE; /** * Whether WFC roaming is enabled @@ -12521,12 +12521,12 @@ public final class Settings { * Type: int (0 for false, 1 for true) * * @hide - * @deprecated Use {@link android.telephony.SubscriptionManager#WFC_IMS_ROAMING_ENABLED} + * @deprecated Use {@link android.provider.Telephony.SimInfo#WFC_IMS_ROAMING_ENABLED} * instead */ @Deprecated public static final String WFC_IMS_ROAMING_ENABLED = - SubscriptionManager.WFC_IMS_ROAMING_ENABLED; + Telephony.SimInfo.WFC_IMS_ROAMING_ENABLED; /** * Whether user can enable/disable LTE as a preferred network. A carrier might control diff --git a/core/java/android/provider/Telephony.java b/core/java/android/provider/Telephony.java index 1d9bdb81a05f..2e7ac3f505fa 100644 --- a/core/java/android/provider/Telephony.java +++ b/core/java/android/provider/Telephony.java @@ -38,11 +38,13 @@ import android.net.Uri; import android.os.Build; import android.os.Bundle; import android.os.Parcel; +import android.telephony.CarrierConfigManager; import android.telephony.Rlog; import android.telephony.ServiceState; import android.telephony.SmsMessage; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; +import android.telephony.UiccAccessRule; import android.text.TextUtils; import android.util.Patterns; @@ -4980,5 +4982,402 @@ public final class Telephony { */ @NonNull public static final Uri CONTENT_URI = Uri.parse("content://telephony/siminfo"); + + /** + * TelephonyProvider unique key column name is the subscription id. + * <P>Type: TEXT (String)</P> + */ + public static final String UNIQUE_KEY_SUBSCRIPTION_ID = "_id"; + + /** + * TelephonyProvider column name for a unique identifier for the subscription within the + * specific subscription type. For example, it contains SIM ICC Identifier subscriptions + * on Local SIMs. and Mac-address for Remote-SIM Subscriptions for Bluetooth devices. + * <P>Type: TEXT (String)</P> + */ + public static final String ICC_ID = "icc_id"; + + /** + * TelephonyProvider column name for user SIM_SlOT_INDEX + * <P>Type: INTEGER (int)</P> + */ + public static final String SIM_SLOT_INDEX = "sim_id"; + + /** + * SIM is not inserted + */ + public static final int SIM_NOT_INSERTED = -1; + + /** + * TelephonyProvider column name Subscription-type. + * <P>Type: INTEGER (int)</P> {@link #SUBSCRIPTION_TYPE_LOCAL_SIM} for Local-SIM + * Subscriptions, {@link #SUBSCRIPTION_TYPE_REMOTE_SIM} for Remote-SIM Subscriptions. + * Default value is 0. + */ + public static final String SUBSCRIPTION_TYPE = "subscription_type"; + + /** + * This constant is to designate a subscription as a Local-SIM Subscription. + * <p> A Local-SIM can be a physical SIM inserted into a sim-slot in the device, or eSIM on + * the device. + * </p> + */ + public static final int SUBSCRIPTION_TYPE_LOCAL_SIM = 0; + + /** + * This constant is to designate a subscription as a Remote-SIM Subscription. + * <p> + * A Remote-SIM subscription is for a SIM on a phone connected to this device via some + * connectivity mechanism, for example bluetooth. Similar to Local SIM, this subscription + * can be used for SMS, Voice and data by proxying data through the connected device. + * Certain data of the SIM, such as IMEI, are not accessible for Remote SIMs. + * </p> + * + * <p> + * A Remote-SIM is available only as long the phone stays connected to this device. + * When the phone disconnects, Remote-SIM subscription is removed from this device and is + * no longer known. All data associated with the subscription, such as stored SMS, call + * logs, contacts etc, are removed from this device. + * </p> + * + * <p> + * If the phone re-connects to this device, a new Remote-SIM subscription is created for + * the phone. The Subscription Id associated with the new subscription is different from + * the Subscription Id of the previous Remote-SIM subscription created (and removed) for the + * phone; i.e., new Remote-SIM subscription treats the reconnected phone as a Remote-SIM + * that was never seen before. + * </p> + */ + public static final int SUBSCRIPTION_TYPE_REMOTE_SIM = 1; + + /** + * TelephonyProvider column name data_enabled_override_rules. + * It's a list of rules for overriding data enabled settings. The syntax is + * For example, "mms=nonDefault" indicates enabling data for mms in non-default + * subscription. + * "default=nonDefault&inVoiceCall" indicates enabling data for internet in non-default + * subscription and while is in voice call. + * + * Default value is empty string. + */ + public static final String DATA_ENABLED_OVERRIDE_RULES = "data_enabled_override_rules"; + + /** + * TelephonyProvider column name for user displayed name. + * <P>Type: TEXT (String)</P> + */ + public static final String DISPLAY_NAME = "display_name"; + + /** + * TelephonyProvider column name for the service provider name for the SIM. + * <P>Type: TEXT (String)</P> + */ + public static final String CARRIER_NAME = "carrier_name"; + + /** + * TelephonyProvider column name for source of the user displayed name. + * <P>Type: INT (int)</P> with one of the NAME_SOURCE_XXXX values below + */ + public static final String NAME_SOURCE = "name_source"; + + /** The name_source is the default, which is from the carrier id. */ + public static final int NAME_SOURCE_DEFAULT = 0; + + /** + * The name_source is from SIM EF_SPN. + */ + public static final int NAME_SOURCE_SIM_SPN = 1; + + /** + * The name_source is from user input + */ + public static final int NAME_SOURCE_USER_INPUT = 2; + + /** + * The name_source is carrier (carrier app, carrier config, etc.) + */ + public static final int NAME_SOURCE_CARRIER = 3; + + /** + * The name_source is from SIM EF_PNN. + */ + public static final int NAME_SOURCE_SIM_PNN = 4; + + /** + * TelephonyProvider column name for the color of a SIM. + * <P>Type: INTEGER (int)</P> + */ + public static final String COLOR = "color"; + + /** TelephonyProvider column name for the default color of a SIM {@hide} */ + public static final int COLOR_DEFAULT = 0; + + /** + * TelephonyProvider column name for the phone number of a SIM. + * <P>Type: TEXT (String)</P> + */ + public static final String NUMBER = "number"; + + /** + * TelephonyProvider column name for the number display format of a SIM. + * <P>Type: INTEGER (int)</P> + * @hide + */ + public static final String DISPLAY_NUMBER_FORMAT = "display_number_format"; + + /** + * TelephonyProvider column name for the default display format of a SIM + * @hide + */ + public static final int DISPLAY_NUMBER_DEFAULT = 1; + + /** + * TelephonyProvider column name for whether data roaming is enabled. + * <P>Type: INTEGER (int)</P> + */ + public static final String DATA_ROAMING = "data_roaming"; + + /** Indicates that data roaming is enabled for a subscription */ + public static final int DATA_ROAMING_ENABLE = 1; + + /** Indicates that data roaming is disabled for a subscription */ + public static final int DATA_ROAMING_DISABLE = 0; + + /** TelephonyProvider column name for default data roaming setting: disable */ + public static final int DATA_ROAMING_DEFAULT = DATA_ROAMING_DISABLE; + + /** + * TelephonyProvider column name for subscription carrier id. + * @see TelephonyManager#getSimCarrierId() + * <p>Type: INTEGER (int) </p> + */ + public static final String CARRIER_ID = "carrier_id"; + + /** + * A comma-separated list of EHPLMNs associated with the subscription + * <P>Type: TEXT (String)</P> + */ + public static final String EHPLMNS = "ehplmns"; + + /** + * A comma-separated list of HPLMNs associated with the subscription + * <P>Type: TEXT (String)</P> + */ + public static final String HPLMNS = "hplmns"; + + /** + * TelephonyProvider column name for the MCC associated with a SIM, stored as a string. + * <P>Type: TEXT (String)</P> + */ + public static final String MCC_STRING = "mcc_string"; + + /** + * TelephonyProvider column name for the MNC associated with a SIM, stored as a string. + * <P>Type: TEXT (String)</P> + */ + public static final String MNC_STRING = "mnc_string"; + + /** + * TelephonyProvider column name for the MCC associated with a SIM. + * <P>Type: INTEGER (int)</P> + */ + public static final String MCC = "mcc"; + + /** + * TelephonyProvider column name for the MNC associated with a SIM. + * <P>Type: INTEGER (int)</P> + */ + public static final String MNC = "mnc"; + + /** + * TelephonyProvider column name for the iso country code associated with a SIM. + * <P>Type: TEXT (String)</P> + */ + public static final String ISO_COUNTRY_CODE = "iso_country_code"; + + /** + * TelephonyProvider column name for the sim provisioning status associated with a SIM. + * <P>Type: INTEGER (int)</P> + * @hide + */ + public static final String SIM_PROVISIONING_STATUS = "sim_provisioning_status"; + + /** The sim is provisioned {@hide} */ + public static final int SIM_PROVISIONED = 0; + + /** + * TelephonyProvider column name for whether a subscription is embedded (that is, present on + * an eSIM). + * <p>Type: INTEGER (int), 1 for embedded or 0 for non-embedded. + */ + public static final String IS_EMBEDDED = "is_embedded"; + + /** + * TelephonyProvider column name for SIM card identifier. For UICC card it is the ICCID of + * the current enabled profile on the card, while for eUICC card it is the EID of the card. + * <P>Type: TEXT (String)</P> + */ + public static final String CARD_ID = "card_id"; + + /** + * TelephonyProvider column name for the encoded {@link UiccAccessRule}s from + * {@link UiccAccessRule#encodeRules}. Only present if {@link #IS_EMBEDDED} is 1. + * <p>TYPE: BLOB + */ + public static final String ACCESS_RULES = "access_rules"; + + /** + * TelephonyProvider column name for the encoded {@link UiccAccessRule}s from + * {@link UiccAccessRule#encodeRules} but for the rules that come from CarrierConfigs. + * Only present if there are access rules in CarrierConfigs + * <p>TYPE: BLOB + */ + public static final String ACCESS_RULES_FROM_CARRIER_CONFIGS = + "access_rules_from_carrier_configs"; + + /** + * TelephonyProvider column name identifying whether an embedded subscription is on a + * removable card. Such subscriptions are marked inaccessible as soon as the current card + * is removed. Otherwise, they will remain accessible unless explicitly deleted. Only + * present if {@link #IS_EMBEDDED} is 1. + * <p>TYPE: INTEGER (int), 1 for removable or 0 for non-removable. + */ + public static final String IS_REMOVABLE = "is_removable"; + + /** TelephonyProvider column name for extreme threat in CB settings */ + public static final String CB_EXTREME_THREAT_ALERT = "enable_cmas_extreme_threat_alerts"; + + /** TelephonyProvider column name for severe threat in CB settings */ + public static final String CB_SEVERE_THREAT_ALERT = "enable_cmas_severe_threat_alerts"; + + /** TelephonyProvider column name for amber alert in CB settings */ + public static final String CB_AMBER_ALERT = "enable_cmas_amber_alerts"; + + /** TelephonyProvider column name for emergency alert in CB settings */ + public static final String CB_EMERGENCY_ALERT = "enable_emergency_alerts"; + + /** TelephonyProvider column name for alert sound duration in CB settings */ + public static final String CB_ALERT_SOUND_DURATION = "alert_sound_duration"; + + /** TelephonyProvider column name for alert reminder interval in CB settings */ + public static final String CB_ALERT_REMINDER_INTERVAL = "alert_reminder_interval"; + + /** TelephonyProvider column name for enabling vibrate in CB settings */ + public static final String CB_ALERT_VIBRATE = "enable_alert_vibrate"; + + /** TelephonyProvider column name for enabling alert speech in CB settings */ + public static final String CB_ALERT_SPEECH = "enable_alert_speech"; + + /** TelephonyProvider column name for ETWS test alert in CB settings */ + public static final String CB_ETWS_TEST_ALERT = "enable_etws_test_alerts"; + + /** TelephonyProvider column name for enable channel50 alert in CB settings */ + public static final String CB_CHANNEL_50_ALERT = "enable_channel_50_alerts"; + + /** TelephonyProvider column name for CMAS test alert in CB settings */ + public static final String CB_CMAS_TEST_ALERT = "enable_cmas_test_alerts"; + + /** TelephonyProvider column name for Opt out dialog in CB settings */ + public static final String CB_OPT_OUT_DIALOG = "show_cmas_opt_out_dialog"; + + /** + * TelephonyProvider column name for enable Volte. + * + * If this setting is not initialized (set to -1) then we use the Carrier Config value + * {@link CarrierConfigManager#KEY_ENHANCED_4G_LTE_ON_BY_DEFAULT_BOOL}. + */ + public static final String ENHANCED_4G_MODE_ENABLED = "volte_vt_enabled"; + + /** TelephonyProvider column name for enable VT (Video Telephony over IMS) */ + public static final String VT_IMS_ENABLED = "vt_ims_enabled"; + + /** TelephonyProvider column name for enable Wifi calling */ + public static final String WFC_IMS_ENABLED = "wfc_ims_enabled"; + + /** TelephonyProvider column name for Wifi calling mode */ + public static final String WFC_IMS_MODE = "wfc_ims_mode"; + + /** TelephonyProvider column name for Wifi calling mode in roaming */ + public static final String WFC_IMS_ROAMING_MODE = "wfc_ims_roaming_mode"; + + /** TelephonyProvider column name for enable Wifi calling in roaming */ + public static final String WFC_IMS_ROAMING_ENABLED = "wfc_ims_roaming_enabled"; + + /** + * TelephonyProvider column name for whether a subscription is opportunistic, that is, + * whether the network it connects to is limited in functionality or coverage. + * For example, CBRS. + * <p>Type: INTEGER (int), 1 for opportunistic or 0 for non-opportunistic. + */ + public static final String IS_OPPORTUNISTIC = "is_opportunistic"; + + /** + * TelephonyProvider column name for group ID. Subscriptions with same group ID + * are considered bundled together, and should behave as a single subscription at + * certain scenarios. + */ + public static final String GROUP_UUID = "group_uuid"; + + /** + * TelephonyProvider column name for group owner. It's the package name who created + * the subscription group. + */ + public static final String GROUP_OWNER = "group_owner"; + + /** + * TelephonyProvider column name for whether a subscription is metered or not, that is, + * whether the network it connects to charges for subscription or not. For example, paid + * CBRS or unpaid. + * @hide + */ + public static final String IS_METERED = "is_metered"; + + /** + * TelephonyProvider column name for the profile class of a subscription + * Only present if {@link #IS_EMBEDDED} is 1. + * <P>Type: INTEGER (int)</P> + */ + public static final String PROFILE_CLASS = "profile_class"; + + /** + * A testing profile can be pre-loaded or downloaded onto + * the eUICC and provides connectivity to test equipment + * for the purpose of testing the device and the eUICC. It + * is not intended to store any operator credentials. + */ + public static final int PROFILE_CLASS_TESTING = 0; + + /** + * A provisioning profile is pre-loaded onto the eUICC and + * provides connectivity to a mobile network solely for the + * purpose of provisioning profiles. + */ + public static final int PROFILE_CLASS_PROVISIONING = 1; + + /** + * An operational profile can be pre-loaded or downloaded + * onto the eUICC and provides services provided by the + * operator. + */ + public static final int PROFILE_CLASS_OPERATIONAL = 2; + + /** + * The profile class is unset. This occurs when profile class + * info is not available. The subscription either has no profile + * metadata or the profile metadata did not encode profile class. + */ + public static final int PROFILE_CLASS_UNSET = -1; + + /** Default profile class */ + public static final int PROFILE_CLASS_DEFAULT = PROFILE_CLASS_UNSET; + + /** + * IMSI (International Mobile Subscriber Identity). + * <P>Type: TEXT </P> + */ + public static final String IMSI = "imsi"; + + /** Whether uicc applications is set to be enabled or disabled. By default it's enabled. */ + public static final String UICC_APPLICATIONS_ENABLED = "uicc_applications_enabled"; } } |
