1 /*
2  * Copyright (C) 2006 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.android.internal.telephony;
18 
19 import android.compat.annotation.UnsupportedAppUsage;
20 
21 /**
22  * Contains a list of string constants used to get or set telephone properties
23  * in the system. You can use {@link android.os.SystemProperties os.SystemProperties}
24  * to get and set these values.
25  * @hide
26  */
27 public interface TelephonyProperties
28 {
29     //****** Baseband and Radio Interface version
30 
31     //TODO T: property strings do not have to be gsm specific
32     //        change gsm.*operator.*" properties to "operator.*" properties
33 
34     /**
35      * Baseband version
36      * Availability: property is available any time radio is on
37      */
38     static final String PROPERTY_BASEBAND_VERSION = "gsm.version.baseband";
39 
40     /** Radio Interface Layer (RIL) library implementation. */
41     static final String PROPERTY_RIL_IMPL = "gsm.version.ril-impl";
42 
43     //****** Current Network
44 
45     /** Alpha name of current registered operator.<p>
46      *  Availability: when registered to a network. Result may be unreliable on
47      *  CDMA networks.
48      */
49     static final String PROPERTY_OPERATOR_ALPHA = "gsm.operator.alpha";
50     //TODO: most of these properties are generic, substitute gsm. with phone. bug 1856959
51 
52     /** Numeric name (MCC+MNC) of current registered operator.<p>
53      *  Availability: when registered to a network. Result may be unreliable on
54      *  CDMA networks.
55      */
56     static final String PROPERTY_OPERATOR_NUMERIC = "gsm.operator.numeric";
57 
58     /** 'true' if the device is on a manually selected network
59      *
60      *  Availability: when registered to a network
61      */
62     static final String PROPERTY_OPERATOR_ISMANUAL = "operator.ismanual";
63 
64     /** 'true' if the device is considered roaming on this network for GSM
65      *  purposes.
66      *  Availability: when registered to a network
67      */
68     static final String PROPERTY_OPERATOR_ISROAMING = "gsm.operator.isroaming";
69 
70     /** The ISO country code equivalent of the current registered operator's
71      *  MCC (Mobile Country Code)<p>
72      *  Availability: when registered to a network. Result may be unreliable on
73      *  CDMA networks.
74      */
75     static final String PROPERTY_OPERATOR_ISO_COUNTRY = "gsm.operator.iso-country";
76 
77     /**
78      * The contents of this property is the value of the kernel command line
79      * product_type variable that corresponds to a product that supports LTE on CDMA.
80      * {@see BaseCommands#getLteOnCdmaMode()}
81      */
82     static final String PROPERTY_LTE_ON_CDMA_PRODUCT_TYPE = "telephony.lteOnCdmaProductType";
83 
84     /**
85      * The contents of this property is the one of {@link Phone#LTE_ON_CDMA_TRUE} or
86      * {@link Phone#LTE_ON_CDMA_FALSE}. If absent the value will assumed to be false
87      * and the {@see #PROPERTY_LTE_ON_CDMA_PRODUCT_TYPE} will be used to determine its
88      * final value which could also be {@link Phone#LTE_ON_CDMA_FALSE}.
89      * {@see BaseCommands#getLteOnCdmaMode()}
90      */
91     static final String PROPERTY_LTE_ON_CDMA_DEVICE = "telephony.lteOnCdmaDevice";
92 
93     static final String CURRENT_ACTIVE_PHONE = "gsm.current.phone-type";
94 
95     //****** SIM Card
96     /**
97      * One of <code>"UNKNOWN"</code> <code>"ABSENT"</code> <code>"PIN_REQUIRED"</code>
98      * <code>"PUK_REQUIRED"</code> <code>"NETWORK_LOCKED"</code> or <code>"READY"</code>
99      */
100     static String PROPERTY_SIM_STATE = "gsm.sim.state";
101 
102     /** The MCC+MNC (mobile country code+mobile network code) of the
103      *  provider of the SIM. 5 or 6 decimal digits.
104      *  Availability: SIM state must be "READY"
105      */
106     @UnsupportedAppUsage
107     static String PROPERTY_ICC_OPERATOR_NUMERIC = "gsm.sim.operator.numeric";
108 
109     /** PROPERTY_ICC_OPERATOR_ALPHA is also known as the SPN, or Service Provider Name.
110      *  Availability: SIM state must be "READY"
111      */
112     static String PROPERTY_ICC_OPERATOR_ALPHA = "gsm.sim.operator.alpha";
113 
114     /** ISO country code equivalent for the SIM provider's country code*/
115     static String PROPERTY_ICC_OPERATOR_ISO_COUNTRY = "gsm.sim.operator.iso-country";
116 
117     /**
118      * Indicates the available radio technology.  Values include: <code>"unknown"</code>,
119      * <code>"GPRS"</code>, <code>"EDGE"</code> and <code>"UMTS"</code>.
120      */
121     static String PROPERTY_DATA_NETWORK_TYPE = "gsm.network.type";
122 
123     /** Indicate if phone is in emergency callback mode */
124     static final String PROPERTY_INECM_MODE = "ril.cdma.inecmmode";
125 
126     /** Indicate the timer value for exiting emergency callback mode */
127     static final String PROPERTY_ECM_EXIT_TIMER = "ro.cdma.ecmexittimer";
128 
129     /** the international dialing prefix of current operator network */
130     static final String PROPERTY_OPERATOR_IDP_STRING = "gsm.operator.idpstring";
131 
132     /**
133      * Defines the schema for the carrier specified OTASP number
134      */
135     static final String PROPERTY_OTASP_NUM_SCHEMA = "ro.cdma.otaspnumschema";
136 
137     /**
138      * Disable all calls including Emergency call when it set to true.
139      */
140     static final String PROPERTY_DISABLE_CALL = "ro.telephony.disable-call";
141 
142     /**
143      * Set to true for vendor RIL's that send multiple UNSOL_CALL_RING notifications.
144      */
145     static final String PROPERTY_RIL_SENDS_MULTIPLE_CALL_RING =
146         "ro.telephony.call_ring.multiple";
147 
148     /**
149      * The number of milliseconds between CALL_RING notifications.
150      */
151     static final String PROPERTY_CALL_RING_DELAY = "ro.telephony.call_ring.delay";
152 
153     /**
154      * Track CDMA SMS message id numbers to ensure they increment
155      * monotonically, regardless of reboots.
156      */
157     static final String PROPERTY_CDMA_MSG_ID = "persist.radio.cdma.msgid";
158 
159     /**
160      * Property to override DEFAULT_WAKE_LOCK_TIMEOUT
161      */
162     static final String PROPERTY_WAKE_LOCK_TIMEOUT = "ro.ril.wake_lock_timeout";
163 
164     /**
165      * Set to true to indicate that the modem needs to be reset
166      * when there is a radio technology change.
167      */
168     static final String PROPERTY_RESET_ON_RADIO_TECH_CHANGE = "persist.radio.reset_on_switch";
169 
170     /**
171      * Set to false to disable SMS receiving, default is
172      * the value of config_sms_capable
173      */
174     static final String PROPERTY_SMS_RECEIVE = "telephony.sms.receive";
175 
176     /**
177      * Set to false to disable SMS sending, default is
178      * the value of config_sms_capable
179      */
180     static final String PROPERTY_SMS_SEND = "telephony.sms.send";
181 
182     /**
183      * Set to true to indicate a test CSIM card is used in the device.
184      * This property is for testing purpose only. This should not be defined
185      * in commercial configuration.
186      */
187     static final String PROPERTY_TEST_CSIM = "persist.radio.test-csim";
188 
189     /**
190      * Ignore RIL_UNSOL_NITZ_TIME_RECEIVED completely, used for debugging/testing.
191      */
192     static final String PROPERTY_IGNORE_NITZ = "telephony.test.ignore.nitz";
193 
194     /**
195      * Property to set multi sim feature.
196      * Type:  String(dsds, dsda)
197      */
198     static final String PROPERTY_MULTI_SIM_CONFIG = "persist.radio.multisim.config";
199 
200     /**
201      * Property to indicate if reboot is required when changing modems configurations
202      * Type:  String(true, false) default is false; most devices don't need reboot
203      */
204     String PROPERTY_REBOOT_REQUIRED_ON_MODEM_CHANGE = "persist.radio.reboot_on_modem_change";
205 
206     /**
207      * Property to store default subscription.
208      */
209     static final String PROPERTY_DEFAULT_SUBSCRIPTION = "persist.radio.default.sub";
210 
211     /**
212      * Property to enable MMS Mode.
213      * Type: string ( default = silent, enable to = prompt )
214      */
215     static final String PROPERTY_MMS_TRANSACTION = "mms.transaction";
216 
217     /**
218      * Set to the sim count.
219      */
220     static final String PROPERTY_SIM_COUNT = "ro.telephony.sim.count";
221 
222     /**
223      * Controls audio route for video calls.
224      * 0 - Use the default audio routing strategy.
225      * 1 - Disable the speaker. Route the audio to Headset or Bluetooth
226      *     or Earpiece, based on the default audio routing strategy.
227      */
228     static final String PROPERTY_VIDEOCALL_AUDIO_OUTPUT = "persist.radio.call.audio.output";
229 
230     /** 'true' if the carrier text from opportunistic subscription should be used to display
231      * on UI.
232      *
233      */
234     String DISPLAY_OPPORTUNISTIC_SUBSCRIPTION_CARRIER_TEXT_PROPERTY_NAME =
235             "persist.radio.display_opportunistic_carrier";
236 
237     /**
238      * How many logical modems can be active simultaneously. For example, if a device is dual-SIM
239      * capable but currently only one SIM slot and one logical modem is active, this value is still
240      * two.
241      * Type: int
242      */
243     static final String PROPERTY_MAX_ACTIVE_MODEMS = "telephony.active_modems.max_count";
244 }
245