blob: bbfb6811d5c7c2b3c80aa05a5a4b9f2d41f281ed [file] [log] [blame]
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001/*
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
17package android.provider;
18
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080019import android.annotation.SdkConstant;
20import android.annotation.SdkConstant.SdkConstantType;
Dianne Hackbornd7c03952014-08-29 17:32:04 -070021import android.annotation.SystemApi;
Narayan Kamathee69ff42011-06-28 12:07:18 +010022import android.app.SearchManager;
Jeff Sharkey6e2bee72012-10-01 13:39:08 -070023import android.app.WallpaperManager;
Mike LeBeau5d34e9b2010-02-10 19:34:56 -080024import android.content.ComponentName;
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080025import android.content.ContentResolver;
26import android.content.ContentValues;
27import android.content.Context;
Brad Fitzpatrick1877d012010-03-04 17:48:13 -080028import android.content.IContentProvider;
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080029import android.content.Intent;
Dianne Hackbornb8b11a02010-03-10 15:53:11 -080030import android.content.pm.ActivityInfo;
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080031import android.content.pm.PackageManager;
32import android.content.pm.ResolveInfo;
33import android.content.res.Configuration;
34import android.content.res.Resources;
35import android.database.Cursor;
36import android.database.SQLException;
David Christie3f7b6522013-08-06 19:19:08 -070037import android.location.LocationManager;
Jeff Sharkey625239a2012-09-26 22:03:49 -070038import android.net.ConnectivityManager;
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080039import android.net.Uri;
Irfan Sheriff36f74132010-11-04 16:57:37 -070040import android.net.wifi.WifiManager;
Svetoslav Ganov585f13f8d2010-08-10 07:59:15 -070041import android.os.BatteryManager;
42import android.os.Bundle;
Jeff Sharkey625239a2012-09-26 22:03:49 -070043import android.os.DropBoxManager;
Amith Yamasani52c489c2012-03-28 11:42:42 -070044import android.os.IBinder;
Amith Yamasani7ab8c4a2012-04-06 09:27:12 -070045import android.os.Process;
Svetoslav Ganov585f13f8d2010-08-10 07:59:15 -070046import android.os.RemoteException;
Amith Yamasani52c489c2012-03-28 11:42:42 -070047import android.os.ServiceManager;
Svetoslav Ganov585f13f8d2010-08-10 07:59:15 -070048import android.os.SystemProperties;
Dianne Hackbornf02b60a2012-08-16 10:48:27 -070049import android.os.UserHandle;
Jeff Sharkey625239a2012-09-26 22:03:49 -070050import android.os.Build.VERSION_CODES;
Narayan Kamath6d632962011-08-24 11:51:37 +010051import android.speech.tts.TextToSpeech;
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080052import android.text.TextUtils;
53import android.util.AndroidException;
54import android.util.Log;
55
Amith Yamasani52c489c2012-03-28 11:42:42 -070056import com.android.internal.widget.ILockSettings;
57
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080058import java.net.URISyntaxException;
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080059import java.util.HashMap;
60import java.util.HashSet;
Elliott Hughescb64d432013-08-02 10:00:44 -070061import java.util.Locale;
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080062
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080063/**
64 * The Settings provider contains global system-level device preferences.
65 */
66public final class Settings {
67
68 // Intent actions for Settings
69
70 /**
71 * Activity Action: Show system settings.
72 * <p>
73 * Input: Nothing.
74 * <p>
Gilles Debunnee90bed12011-08-30 14:28:27 -070075 * Output: Nothing.
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080076 */
77 @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
78 public static final String ACTION_SETTINGS = "android.settings.SETTINGS";
79
80 /**
81 * Activity Action: Show settings to allow configuration of APNs.
82 * <p>
83 * Input: Nothing.
84 * <p>
Gilles Debunnee90bed12011-08-30 14:28:27 -070085 * Output: Nothing.
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080086 */
87 @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
88 public static final String ACTION_APN_SETTINGS = "android.settings.APN_SETTINGS";
89
90 /**
91 * Activity Action: Show settings to allow configuration of current location
92 * sources.
93 * <p>
94 * In some cases, a matching Activity may not exist, so ensure you
95 * safeguard against this.
96 * <p>
97 * Input: Nothing.
98 * <p>
99 * Output: Nothing.
100 */
101 @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
102 public static final String ACTION_LOCATION_SOURCE_SETTINGS =
103 "android.settings.LOCATION_SOURCE_SETTINGS";
104
105 /**
106 * Activity Action: Show settings to allow configuration of wireless controls
107 * such as Wi-Fi, Bluetooth and Mobile networks.
108 * <p>
109 * In some cases, a matching Activity may not exist, so ensure you
110 * safeguard against this.
111 * <p>
112 * Input: Nothing.
113 * <p>
114 * Output: Nothing.
115 */
116 @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
117 public static final String ACTION_WIRELESS_SETTINGS =
118 "android.settings.WIRELESS_SETTINGS";
119
120 /**
121 * Activity Action: Show settings to allow entering/exiting airplane mode.
122 * <p>
123 * In some cases, a matching Activity may not exist, so ensure you
124 * safeguard against this.
125 * <p>
126 * Input: Nothing.
127 * <p>
128 * Output: Nothing.
129 */
130 @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
131 public static final String ACTION_AIRPLANE_MODE_SETTINGS =
132 "android.settings.AIRPLANE_MODE_SETTINGS";
133
134 /**
Dianne Hackbornd7c03952014-08-29 17:32:04 -0700135 * @hide
Barnaby James48f35522014-07-16 14:27:39 -0700136 * Activity Action: Modify Airplane mode settings using the users voice.
137 * <p>
138 * In some cases, a matching Activity may not exist, so ensure you safeguard against this.
139 * <p>
140 * This intent MUST be started using
141 * {@link android.service.voice.VoiceInteractionSession#startVoiceActivity
142 * startVoiceActivity}.
143 * <p>
144 * To tell which state airplane mode should be set to, add the
145 * {@link #EXTRA_AIRPLANE_MODE_ENABLED} extra to this Intent with the state specified.
146 * If there is no extra in this Intent, no changes will be made.
147 * <p>
148 * The activity should verify that
149 * {@link android.app.Activity#isVoiceInteraction isVoiceInteraction} returns true before
150 * modifying the setting.
151 * <p>
152 * Input: Nothing.
153 * <p>
154 * Output: Nothing.
155 */
156 @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
Dianne Hackbornd7c03952014-08-29 17:32:04 -0700157 @SystemApi
Barnaby James48f35522014-07-16 14:27:39 -0700158 public static final String ACTION_VOICE_CONTROL_AIRPLANE_MODE =
159 "android.settings.VOICE_CONTROL_AIRPLANE_MODE";
160
161 /**
Dianne Hackborndd9b82c2009-09-03 00:18:47 -0700162 * Activity Action: Show settings for accessibility modules.
163 * <p>
164 * In some cases, a matching Activity may not exist, so ensure you
165 * safeguard against this.
166 * <p>
167 * Input: Nothing.
168 * <p>
169 * Output: Nothing.
170 */
171 @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
172 public static final String ACTION_ACCESSIBILITY_SETTINGS =
173 "android.settings.ACCESSIBILITY_SETTINGS";
174
175 /**
Dianne Hackborna3fb40d2014-08-12 15:06:50 -0700176 * Activity Action: Show settings to control access to usage information.
177 * <p>
178 * In some cases, a matching Activity may not exist, so ensure you
179 * safeguard against this.
180 * <p>
181 * Input: Nothing.
182 * <p>
183 * Output: Nothing.
184 */
185 @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
186 public static final String ACTION_USAGE_ACCESS_SETTINGS =
187 "android.settings.USAGE_ACCESS_SETTINGS";
188
189 /**
The Android Open Source Project9066cfe2009-03-03 19:31:44 -0800190 * Activity Action: Show settings to allow configuration of security and
191 * location privacy.
192 * <p>
193 * In some cases, a matching Activity may not exist, so ensure you
194 * safeguard against this.
195 * <p>
196 * Input: Nothing.
197 * <p>
198 * Output: Nothing.
199 */
200 @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
201 public static final String ACTION_SECURITY_SETTINGS =
202 "android.settings.SECURITY_SETTINGS";
203
204 /**
Maggie Benthall0469f412013-09-05 15:30:26 -0400205 * Activity Action: Show trusted credentials settings, opening to the user tab,
206 * to allow management of installed credentials.
207 * <p>
208 * In some cases, a matching Activity may not exist, so ensure you
209 * safeguard against this.
210 * <p>
211 * Input: Nothing.
212 * <p>
213 * Output: Nothing.
214 * @hide
215 */
216 @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
217 public static final String ACTION_TRUSTED_CREDENTIALS_USER =
218 "com.android.settings.TRUSTED_CREDENTIALS_USER";
219
220 /**
221 * Activity Action: Show dialog explaining that an installed CA cert may enable
222 * monitoring of encrypted network traffic.
223 * <p>
224 * In some cases, a matching Activity may not exist, so ensure you
225 * safeguard against this.
226 * <p>
227 * Input: Nothing.
228 * <p>
229 * Output: Nothing.
230 * @hide
231 */
232 @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
233 public static final String ACTION_MONITORING_CERT_INFO =
234 "com.android.settings.MONITORING_CERT_INFO";
235
236 /**
Amith Yamasanic15255a2009-09-23 15:33:19 -0700237 * Activity Action: Show settings to allow configuration of privacy options.
238 * <p>
239 * In some cases, a matching Activity may not exist, so ensure you
240 * safeguard against this.
241 * <p>
242 * Input: Nothing.
243 * <p>
244 * Output: Nothing.
245 */
246 @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
247 public static final String ACTION_PRIVACY_SETTINGS =
248 "android.settings.PRIVACY_SETTINGS";
249
250 /**
The Android Open Source Project9066cfe2009-03-03 19:31:44 -0800251 * Activity Action: Show settings to allow configuration of Wi-Fi.
The Android Open Source Project9066cfe2009-03-03 19:31:44 -0800252 * <p>
253 * In some cases, a matching Activity may not exist, so ensure you
254 * safeguard against this.
255 * <p>
256 * Input: Nothing.
257 * <p>
258 * Output: Nothing.
259
260 */
261 @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
262 public static final String ACTION_WIFI_SETTINGS =
263 "android.settings.WIFI_SETTINGS";
Jaikumar Ganesh9bfbfbd2009-05-15 12:05:56 -0700264
The Android Open Source Project9066cfe2009-03-03 19:31:44 -0800265 /**
266 * Activity Action: Show settings to allow configuration of a static IP
267 * address for Wi-Fi.
268 * <p>
269 * In some cases, a matching Activity may not exist, so ensure you safeguard
270 * against this.
271 * <p>
272 * Input: Nothing.
273 * <p>
274 * Output: Nothing.
275 */
276 @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
277 public static final String ACTION_WIFI_IP_SETTINGS =
278 "android.settings.WIFI_IP_SETTINGS";
279
280 /**
281 * Activity Action: Show settings to allow configuration of Bluetooth.
282 * <p>
283 * In some cases, a matching Activity may not exist, so ensure you
284 * safeguard against this.
285 * <p>
286 * Input: Nothing.
287 * <p>
288 * Output: Nothing.
289 */
290 @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
291 public static final String ACTION_BLUETOOTH_SETTINGS =
292 "android.settings.BLUETOOTH_SETTINGS";
293
294 /**
Jeff Brown89d55462012-09-19 11:33:42 -0700295 * Activity Action: Show settings to allow configuration of Wifi Displays.
296 * <p>
297 * In some cases, a matching Activity may not exist, so ensure you
298 * safeguard against this.
299 * <p>
300 * Input: Nothing.
301 * <p>
302 * Output: Nothing.
303 * @hide
304 */
305 @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
306 public static final String ACTION_WIFI_DISPLAY_SETTINGS =
307 "android.settings.WIFI_DISPLAY_SETTINGS";
308
309 /**
Jeff Brown1a937b02014-07-01 22:13:04 -0700310 * Activity Action: Show settings to allow configuration of
Jeff Brownb135d062014-08-19 17:39:42 -0700311 * cast endpoints.
Jeff Brown1a937b02014-07-01 22:13:04 -0700312 * <p>
313 * In some cases, a matching Activity may not exist, so ensure you
314 * safeguard against this.
315 * <p>
316 * Input: Nothing.
317 * <p>
318 * Output: Nothing.
319 */
320 @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
321 public static final String ACTION_CAST_SETTINGS =
322 "android.settings.CAST_SETTINGS";
323
324 /**
The Android Open Source Project9066cfe2009-03-03 19:31:44 -0800325 * Activity Action: Show settings to allow configuration of date and time.
326 * <p>
327 * In some cases, a matching Activity may not exist, so ensure you
328 * safeguard against this.
329 * <p>
330 * Input: Nothing.
331 * <p>
332 * Output: Nothing.
333 */
334 @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
335 public static final String ACTION_DATE_SETTINGS =
336 "android.settings.DATE_SETTINGS";
337
338 /**
339 * Activity Action: Show settings to allow configuration of sound and volume.
340 * <p>
341 * In some cases, a matching Activity may not exist, so ensure you
342 * safeguard against this.
343 * <p>
344 * Input: Nothing.
345 * <p>
346 * Output: Nothing.
347 */
348 @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
349 public static final String ACTION_SOUND_SETTINGS =
350 "android.settings.SOUND_SETTINGS";
351
352 /**
353 * Activity Action: Show settings to allow configuration of display.
354 * <p>
355 * In some cases, a matching Activity may not exist, so ensure you
356 * safeguard against this.
357 * <p>
358 * Input: Nothing.
359 * <p>
360 * Output: Nothing.
361 */
362 @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
363 public static final String ACTION_DISPLAY_SETTINGS =
364 "android.settings.DISPLAY_SETTINGS";
365
366 /**
367 * Activity Action: Show settings to allow configuration of locale.
368 * <p>
369 * In some cases, a matching Activity may not exist, so ensure you
370 * safeguard against this.
371 * <p>
372 * Input: Nothing.
373 * <p>
374 * Output: Nothing.
375 */
376 @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
377 public static final String ACTION_LOCALE_SETTINGS =
378 "android.settings.LOCALE_SETTINGS";
379
380 /**
381 * Activity Action: Show settings to configure input methods, in particular
382 * allowing the user to enable input methods.
383 * <p>
384 * In some cases, a matching Activity may not exist, so ensure you
385 * safeguard against this.
386 * <p>
387 * Input: Nothing.
388 * <p>
389 * Output: Nothing.
390 */
391 @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
Dianne Hackborna3fb40d2014-08-12 15:06:50 -0700392 public static final String ACTION_VOICE_INPUT_SETTINGS =
393 "android.settings.VOICE_INPUT_SETTINGS";
394
395 /**
396 * Activity Action: Show settings to configure input methods, in particular
397 * allowing the user to enable input methods.
398 * <p>
399 * In some cases, a matching Activity may not exist, so ensure you
400 * safeguard against this.
401 * <p>
402 * Input: Nothing.
403 * <p>
404 * Output: Nothing.
405 */
406 @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
The Android Open Source Project9066cfe2009-03-03 19:31:44 -0800407 public static final String ACTION_INPUT_METHOD_SETTINGS =
408 "android.settings.INPUT_METHOD_SETTINGS";
409
410 /**
Tadashi G. Takaokaf49688f2011-01-20 17:56:13 +0900411 * Activity Action: Show settings to enable/disable input method subtypes.
satok86417ea2010-10-27 14:11:03 +0900412 * <p>
413 * In some cases, a matching Activity may not exist, so ensure you
414 * safeguard against this.
415 * <p>
Tadashi G. Takaoka25480202011-01-20 23:13:02 +0900416 * To tell which input method's subtypes are displayed in the settings, add
417 * {@link #EXTRA_INPUT_METHOD_ID} extra to this Intent with the input method id.
418 * If there is no extra in this Intent, subtypes from all installed input methods
419 * will be displayed in the settings.
420 *
421 * @see android.view.inputmethod.InputMethodInfo#getId
422 * <p>
satok86417ea2010-10-27 14:11:03 +0900423 * Input: Nothing.
424 * <p>
425 * Output: Nothing.
426 */
427 @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
Tadashi G. Takaokaf49688f2011-01-20 17:56:13 +0900428 public static final String ACTION_INPUT_METHOD_SUBTYPE_SETTINGS =
429 "android.settings.INPUT_METHOD_SUBTYPE_SETTINGS";
satok86417ea2010-10-27 14:11:03 +0900430
431 /**
satok7cfc0ed2011-06-20 21:29:36 +0900432 * Activity Action: Show a dialog to select input method.
433 * <p>
434 * In some cases, a matching Activity may not exist, so ensure you
435 * safeguard against this.
436 * <p>
437 * Input: Nothing.
438 * <p>
439 * Output: Nothing.
440 * @hide
441 */
442 @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
443 public static final String ACTION_SHOW_INPUT_METHOD_PICKER =
444 "android.settings.SHOW_INPUT_METHOD_PICKER";
445
446 /**
The Android Open Source Project9066cfe2009-03-03 19:31:44 -0800447 * Activity Action: Show settings to manage the user input dictionary.
448 * <p>
Chet Haasee8222dd2013-09-05 07:44:18 -0700449 * Starting with {@link android.os.Build.VERSION_CODES#KITKAT},
Satoshi Kataoka2aa2bc52013-07-30 14:25:11 +0900450 * it is guaranteed there will always be an appropriate implementation for this Intent action.
451 * In prior releases of the platform this was optional, so ensure you safeguard against it.
The Android Open Source Project9066cfe2009-03-03 19:31:44 -0800452 * <p>
453 * Input: Nothing.
454 * <p>
455 * Output: Nothing.
456 */
457 @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
458 public static final String ACTION_USER_DICTIONARY_SETTINGS =
459 "android.settings.USER_DICTIONARY_SETTINGS";
460
461 /**
Gilles Debunnee90bed12011-08-30 14:28:27 -0700462 * Activity Action: Adds a word to the user dictionary.
463 * <p>
464 * In some cases, a matching Activity may not exist, so ensure you
465 * safeguard against this.
466 * <p>
467 * Input: An extra with key <code>word</code> that contains the word
468 * that should be added to the dictionary.
469 * <p>
470 * Output: Nothing.
471 *
472 * @hide
473 */
474 @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
475 public static final String ACTION_USER_DICTIONARY_INSERT =
476 "com.android.settings.USER_DICTIONARY_INSERT";
477
478 /**
The Android Open Source Project9066cfe2009-03-03 19:31:44 -0800479 * Activity Action: Show settings to allow configuration of application-related settings.
480 * <p>
481 * In some cases, a matching Activity may not exist, so ensure you
482 * safeguard against this.
483 * <p>
484 * Input: Nothing.
485 * <p>
486 * Output: Nothing.
487 */
488 @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
489 public static final String ACTION_APPLICATION_SETTINGS =
490 "android.settings.APPLICATION_SETTINGS";
491
492 /**
493 * Activity Action: Show settings to allow configuration of application
Dianne Hackborn8d866e52012-10-10 18:39:45 -0700494 * development-related settings. As of
495 * {@link android.os.Build.VERSION_CODES#JELLY_BEAN_MR1} this action is
496 * a required part of the platform.
The Android Open Source Project9066cfe2009-03-03 19:31:44 -0800497 * <p>
498 * Input: Nothing.
499 * <p>
500 * Output: Nothing.
501 */
502 @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
503 public static final String ACTION_APPLICATION_DEVELOPMENT_SETTINGS =
504 "android.settings.APPLICATION_DEVELOPMENT_SETTINGS";
505
506 /**
507 * Activity Action: Show settings to allow configuration of quick launch shortcuts.
508 * <p>
509 * In some cases, a matching Activity may not exist, so ensure you
510 * safeguard against this.
511 * <p>
512 * Input: Nothing.
513 * <p>
514 * Output: Nothing.
515 */
516 @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
517 public static final String ACTION_QUICK_LAUNCH_SETTINGS =
518 "android.settings.QUICK_LAUNCH_SETTINGS";
Jaikumar Ganesh9bfbfbd2009-05-15 12:05:56 -0700519
The Android Open Source Project9066cfe2009-03-03 19:31:44 -0800520 /**
521 * Activity Action: Show settings to manage installed applications.
522 * <p>
523 * In some cases, a matching Activity may not exist, so ensure you
524 * safeguard against this.
525 * <p>
526 * Input: Nothing.
527 * <p>
528 * Output: Nothing.
529 */
530 @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
531 public static final String ACTION_MANAGE_APPLICATIONS_SETTINGS =
532 "android.settings.MANAGE_APPLICATIONS_SETTINGS";
Jaikumar Ganesh9bfbfbd2009-05-15 12:05:56 -0700533
The Android Open Source Project9066cfe2009-03-03 19:31:44 -0800534 /**
Winson Chung44e8ff92010-09-27 14:36:52 -0700535 * Activity Action: Show settings to manage all applications.
536 * <p>
537 * In some cases, a matching Activity may not exist, so ensure you
538 * safeguard against this.
539 * <p>
540 * Input: Nothing.
541 * <p>
542 * Output: Nothing.
543 */
544 @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
545 public static final String ACTION_MANAGE_ALL_APPLICATIONS_SETTINGS =
546 "android.settings.MANAGE_ALL_APPLICATIONS_SETTINGS";
547
548 /**
Dianne Hackbornb7bb3b32010-06-06 22:47:50 -0700549 * Activity Action: Show screen of details about a particular application.
550 * <p>
551 * In some cases, a matching Activity may not exist, so ensure you
552 * safeguard against this.
553 * <p>
554 * Input: The Intent's data URI specifies the application package name
555 * to be shown, with the "package" scheme. That is "package:com.my.app".
556 * <p>
557 * Output: Nothing.
558 */
559 @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
560 public static final String ACTION_APPLICATION_DETAILS_SETTINGS =
561 "android.settings.APPLICATION_DETAILS_SETTINGS";
562
563 /**
Dianne Hackborn35654b62013-01-14 17:38:02 -0800564 * @hide
565 * Activity Action: Show the "app ops" settings screen.
566 * <p>
567 * Input: Nothing.
568 * <p>
569 * Output: Nothing.
570 */
571 @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
572 public static final String ACTION_APP_OPS_SETTINGS =
573 "android.settings.APP_OPS_SETTINGS";
574
575 /**
The Android Open Source Project9066cfe2009-03-03 19:31:44 -0800576 * Activity Action: Show settings for system update functionality.
577 * <p>
578 * In some cases, a matching Activity may not exist, so ensure you
579 * safeguard against this.
580 * <p>
581 * Input: Nothing.
582 * <p>
583 * Output: Nothing.
Jaikumar Ganesh9bfbfbd2009-05-15 12:05:56 -0700584 *
The Android Open Source Project9066cfe2009-03-03 19:31:44 -0800585 * @hide
586 */
587 @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
588 public static final String ACTION_SYSTEM_UPDATE_SETTINGS =
589 "android.settings.SYSTEM_UPDATE_SETTINGS";
590
591 /**
592 * Activity Action: Show settings to allow configuration of sync settings.
593 * <p>
594 * In some cases, a matching Activity may not exist, so ensure you
595 * safeguard against this.
596 * <p>
Erikeebc8e22010-02-18 13:27:19 -0800597 * The account types available to add via the add account button may be restricted by adding an
598 * {@link #EXTRA_AUTHORITIES} extra to this Intent with one or more syncable content provider's
599 * authorities. Only account types which can sync with that content provider will be offered to
600 * the user.
601 * <p>
The Android Open Source Project9066cfe2009-03-03 19:31:44 -0800602 * Input: Nothing.
603 * <p>
604 * Output: Nothing.
605 */
606 @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
607 public static final String ACTION_SYNC_SETTINGS =
608 "android.settings.SYNC_SETTINGS";
Jaikumar Ganesh9bfbfbd2009-05-15 12:05:56 -0700609
The Android Open Source Project9066cfe2009-03-03 19:31:44 -0800610 /**
Erikeebc8e22010-02-18 13:27:19 -0800611 * Activity Action: Show add account screen for creating a new account.
612 * <p>
613 * In some cases, a matching Activity may not exist, so ensure you
614 * safeguard against this.
615 * <p>
616 * The account types available to add may be restricted by adding an {@link #EXTRA_AUTHORITIES}
617 * extra to the Intent with one or more syncable content provider's authorities. Only account
618 * types which can sync with that content provider will be offered to the user.
619 * <p>
Alon Albert50359c22013-02-26 14:47:48 -0800620 * Account types can also be filtered by adding an {@link #EXTRA_ACCOUNT_TYPES} extra to the
621 * Intent with one or more account types.
622 * <p>
Erikeebc8e22010-02-18 13:27:19 -0800623 * Input: Nothing.
624 * <p>
625 * Output: Nothing.
626 */
627 @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
628 public static final String ACTION_ADD_ACCOUNT =
629 "android.settings.ADD_ACCOUNT_SETTINGS";
630
631 /**
The Android Open Source Project9066cfe2009-03-03 19:31:44 -0800632 * Activity Action: Show settings for selecting the network operator.
633 * <p>
634 * In some cases, a matching Activity may not exist, so ensure you
635 * safeguard against this.
636 * <p>
637 * Input: Nothing.
638 * <p>
639 * Output: Nothing.
640 */
641 @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
642 public static final String ACTION_NETWORK_OPERATOR_SETTINGS =
643 "android.settings.NETWORK_OPERATOR_SETTINGS";
644
645 /**
646 * Activity Action: Show settings for selection of 2G/3G.
647 * <p>
648 * In some cases, a matching Activity may not exist, so ensure you
649 * safeguard against this.
650 * <p>
651 * Input: Nothing.
652 * <p>
653 * Output: Nothing.
654 */
655 @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
656 public static final String ACTION_DATA_ROAMING_SETTINGS =
657 "android.settings.DATA_ROAMING_SETTINGS";
658
659 /**
660 * Activity Action: Show settings for internal storage.
661 * <p>
662 * In some cases, a matching Activity may not exist, so ensure you
663 * safeguard against this.
664 * <p>
665 * Input: Nothing.
666 * <p>
667 * Output: Nothing.
668 */
669 @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
670 public static final String ACTION_INTERNAL_STORAGE_SETTINGS =
671 "android.settings.INTERNAL_STORAGE_SETTINGS";
672 /**
673 * Activity Action: Show settings for memory card storage.
674 * <p>
675 * In some cases, a matching Activity may not exist, so ensure you
676 * safeguard against this.
677 * <p>
678 * Input: Nothing.
679 * <p>
680 * Output: Nothing.
681 */
682 @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
683 public static final String ACTION_MEMORY_CARD_SETTINGS =
684 "android.settings.MEMORY_CARD_SETTINGS";
Jaikumar Ganesh9bfbfbd2009-05-15 12:05:56 -0700685
Justin Mattsonef340352010-01-13 21:05:46 -0800686 /**
687 * Activity Action: Show settings for global search.
688 * <p>
689 * In some cases, a matching Activity may not exist, so ensure you
690 * safeguard against this.
691 * <p>
692 * Input: Nothing.
693 * <p>
694 * Output: Nothing
695 */
696 @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
697 public static final String ACTION_SEARCH_SETTINGS =
698 "android.search.action.SEARCH_SETTINGS";
699
Daniel Sandler9d8b8762010-01-22 20:50:15 -0500700 /**
701 * Activity Action: Show general device information settings (serial
702 * number, software version, phone number, etc.).
703 * <p>
704 * In some cases, a matching Activity may not exist, so ensure you
705 * safeguard against this.
706 * <p>
707 * Input: Nothing.
708 * <p>
709 * Output: Nothing
710 */
711 @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
712 public static final String ACTION_DEVICE_INFO_SETTINGS =
713 "android.settings.DEVICE_INFO_SETTINGS";
714
Martijn Coenen9b3c83f2011-07-28 11:21:39 -0500715 /**
Nick Pellycccf01d2011-10-31 14:49:40 -0700716 * Activity Action: Show NFC settings.
717 * <p>
718 * This shows UI that allows NFC to be turned on or off.
Martijn Coenen9b3c83f2011-07-28 11:21:39 -0500719 * <p>
720 * In some cases, a matching Activity may not exist, so ensure you
721 * safeguard against this.
722 * <p>
723 * Input: Nothing.
724 * <p>
725 * Output: Nothing
Nick Pellycccf01d2011-10-31 14:49:40 -0700726 * @see android.nfc.NfcAdapter#isEnabled()
727 */
728 @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
729 public static final String ACTION_NFC_SETTINGS = "android.settings.NFC_SETTINGS";
730
731 /**
732 * Activity Action: Show NFC Sharing settings.
733 * <p>
734 * This shows UI that allows NDEF Push (Android Beam) to be turned on or
735 * off.
736 * <p>
737 * In some cases, a matching Activity may not exist, so ensure you
738 * safeguard against this.
739 * <p>
740 * Input: Nothing.
741 * <p>
742 * Output: Nothing
743 * @see android.nfc.NfcAdapter#isNdefPushEnabled()
Martijn Coenen9b3c83f2011-07-28 11:21:39 -0500744 */
745 @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
746 public static final String ACTION_NFCSHARING_SETTINGS =
747 "android.settings.NFCSHARING_SETTINGS";
748
Daniel Sandlerc08cd022012-11-27 22:47:37 -0500749 /**
Martijn Coenen62c196a2013-08-09 13:43:34 -0700750 * Activity Action: Show NFC Tap & Pay settings
751 * <p>
752 * This shows UI that allows the user to configure Tap&Pay
753 * settings.
754 * <p>
755 * In some cases, a matching Activity may not exist, so ensure you
756 * safeguard against this.
757 * <p>
758 * Input: Nothing.
759 * <p>
760 * Output: Nothing
761 */
762 @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
763 public static final String ACTION_NFC_PAYMENT_SETTINGS =
764 "android.settings.NFC_PAYMENT_SETTINGS";
765
766 /**
Daniel Sandlerc08cd022012-11-27 22:47:37 -0500767 * Activity Action: Show Daydream settings.
768 * <p>
769 * In some cases, a matching Activity may not exist, so ensure you
770 * safeguard against this.
771 * <p>
772 * Input: Nothing.
773 * <p>
774 * Output: Nothing.
775 * @see android.service.dreams.DreamService
Daniel Sandlerc08cd022012-11-27 22:47:37 -0500776 */
777 @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
778 public static final String ACTION_DREAM_SETTINGS = "android.settings.DREAM_SETTINGS";
779
Daniel Sandler5feceeb2013-03-22 18:29:23 -0700780 /**
781 * Activity Action: Show Notification listener settings.
782 * <p>
783 * In some cases, a matching Activity may not exist, so ensure you
784 * safeguard against this.
785 * <p>
786 * Input: Nothing.
787 * <p>
788 * Output: Nothing.
789 * @see android.service.notification.NotificationListenerService
790 * @hide
791 */
792 @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
793 public static final String ACTION_NOTIFICATION_LISTENER_SETTINGS
794 = "android.settings.NOTIFICATION_LISTENER_SETTINGS";
795
Alan Viverette69ce69b2013-08-29 12:23:48 -0700796 /**
John Spurlock7340fc82014-04-24 18:50:12 -0400797 * @hide
798 */
799 @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
800 public static final String ACTION_CONDITION_PROVIDER_SETTINGS
801 = "android.settings.ACTION_CONDITION_PROVIDER_SETTINGS";
802
803 /**
Alan Viverette69ce69b2013-08-29 12:23:48 -0700804 * Activity Action: Show settings for video captioning.
805 * <p>
806 * In some cases, a matching Activity may not exist, so ensure you safeguard
807 * against this.
808 * <p>
809 * Input: Nothing.
810 * <p>
811 * Output: Nothing.
812 */
813 @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
814 public static final String ACTION_CAPTIONING_SETTINGS = "android.settings.CAPTIONING_SETTINGS";
815
Svetoslav773f54d2013-09-03 14:01:43 -0700816 /**
817 * Activity Action: Show the top level print settings.
818 * <p>
819 * In some cases, a matching Activity may not exist, so ensure you
820 * safeguard against this.
821 * <p>
822 * Input: Nothing.
823 * <p>
824 * Output: Nothing.
825 */
826 @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
827 public static final String ACTION_PRINT_SETTINGS =
828 "android.settings.ACTION_PRINT_SETTINGS";
829
John Spurlockde547002014-02-28 17:50:39 -0500830 /**
831 * Activity Action: Show Zen Mode configuration settings.
832 *
833 * @hide
834 */
835 @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
836 public static final String ACTION_ZEN_MODE_SETTINGS = "android.settings.ZEN_MODE_SETTINGS";
837
Santos Cordona4c75242014-07-09 12:07:51 -0700838 /**
839 * Activity Action: Show the regulatory information screen for the device.
840 * <p>
841 * In some cases, a matching Activity may not exist, so ensure you safeguard
842 * against this.
843 * <p>
844 * Input: Nothing.
845 * <p>
846 * Output: Nothing.
847 */
Jeff Sharkeydd77fda2014-04-16 17:23:08 -0700848 @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
849 public static final String
850 ACTION_SHOW_REGULATORY_INFO = "android.settings.SHOW_REGULATORY_INFO";
851
Jerome Poichet7974cb32014-05-14 12:04:43 -0700852 /**
853 * Activity Action: Show Device Name Settings.
854 * <p>
855 * In some cases, a matching Activity may not exist, so ensure you safeguard
Tim Kilbourn87cd0dc2014-04-14 15:37:51 -0700856 * against this.
Jerome Poichet7974cb32014-05-14 12:04:43 -0700857 *
858 * @hide
859 */
860 @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
861 public static final String DEVICE_NAME_SETTINGS = "android.settings.DEVICE_NAME";
862
Tim Kilbourn87cd0dc2014-04-14 15:37:51 -0700863 /**
864 * Activity Action: Show pairing settings.
865 * <p>
866 * In some cases, a matching Activity may not exist, so ensure you safeguard
867 * against this.
868 *
869 * @hide
870 */
871 @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
872 public static final String ACTION_PAIRING_SETTINGS = "android.settings.PAIRING_SETTINGS";
873
John Spurlockf8f524c2014-06-10 14:47:29 -0400874 /**
875 * Activity Action: Show battery saver settings.
876 *
877 * @hide
878 */
879 @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
880 public static final String ACTION_BATTERY_SAVER_SETTINGS
881 = "android.settings.BATTERY_SAVER_SETTINGS";
882
Amith Yamasanieb7b94a2014-07-14 18:02:08 -0700883 /**
884 * Activity Action: Show Home selection settings. If there are multiple activities
885 * that can satisfy the {@link Intent#CATEGORY_HOME} intent, this screen allows you
886 * to pick your preferred activity.
887 */
888 @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
889 public static final String ACTION_HOME_SETTINGS
890 = "android.settings.HOME_SETTINGS";
891
John Spurlock2b0e09c2014-07-27 13:27:47 -0400892 /**
893 * Activity Action: Show notification settings.
894 *
895 * @hide
896 */
897 @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
898 public static final String ACTION_NOTIFICATION_SETTINGS
899 = "android.settings.NOTIFICATION_SETTINGS";
900
901 /**
902 * Activity Action: Show notification settings for a single app.
903 *
904 * @hide
905 */
906 @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
907 public static final String ACTION_APP_NOTIFICATION_SETTINGS
908 = "android.settings.APP_NOTIFICATION_SETTINGS";
909
Chris Wrencd8f4f72014-08-27 18:48:13 -0400910 /**
911 * Activity Action: Show notification redaction settings.
912 *
913 * @hide
914 */
915 @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
916 public static final String ACTION_APP_NOTIFICATION_REDACTION
917 = "android.settings.ACTION_APP_NOTIFICATION_REDACTION";
918
John Spurlock2b0e09c2014-07-27 13:27:47 -0400919 /** @hide */ public static final String EXTRA_APP_UID = "app_uid";
920 /** @hide */ public static final String EXTRA_APP_PACKAGE = "app_package";
921
The Android Open Source Project9066cfe2009-03-03 19:31:44 -0800922 // End of Intent actions for Settings
923
Erikeebc8e22010-02-18 13:27:19 -0800924 /**
Brad Fitzpatrick1877d012010-03-04 17:48:13 -0800925 * @hide - Private call() method on SettingsProvider to read from 'system' table.
926 */
927 public static final String CALL_METHOD_GET_SYSTEM = "GET_system";
928
929 /**
930 * @hide - Private call() method on SettingsProvider to read from 'secure' table.
931 */
932 public static final String CALL_METHOD_GET_SECURE = "GET_secure";
933
934 /**
Christopher Tate06efb532012-08-24 15:29:27 -0700935 * @hide - Private call() method on SettingsProvider to read from 'global' table.
936 */
937 public static final String CALL_METHOD_GET_GLOBAL = "GET_global";
938
939 /**
940 * @hide - User handle argument extra to the fast-path call()-based requests
941 */
942 public static final String CALL_METHOD_USER_KEY = "_user";
943
944 /** @hide - Private call() method to write to 'system' table */
945 public static final String CALL_METHOD_PUT_SYSTEM = "PUT_system";
946
947 /** @hide - Private call() method to write to 'secure' table */
948 public static final String CALL_METHOD_PUT_SECURE = "PUT_secure";
949
950 /** @hide - Private call() method to write to 'global' table */
951 public static final String CALL_METHOD_PUT_GLOBAL= "PUT_global";
952
953 /**
Erikeebc8e22010-02-18 13:27:19 -0800954 * Activity Extra: Limit available options in launched activity based on the given authority.
955 * <p>
956 * This can be passed as an extra field in an Activity Intent with one or more syncable content
957 * provider's authorities as a String[]. This field is used by some intents to alter the
958 * behavior of the called activity.
959 * <p>
960 * Example: The {@link #ACTION_ADD_ACCOUNT} intent restricts the account types available based
961 * on the authority given.
962 */
Alon Albert50359c22013-02-26 14:47:48 -0800963 public static final String EXTRA_AUTHORITIES = "authorities";
964
Alon Albertd35bf1f2013-04-18 14:26:51 -0700965 /**
966 * Activity Extra: Limit available options in launched activity based on the given account
967 * types.
968 * <p>
969 * This can be passed as an extra field in an Activity Intent with one or more account types
970 * as a String[]. This field is used by some intents to alter the behavior of the called
971 * activity.
972 * <p>
973 * Example: The {@link #ACTION_ADD_ACCOUNT} intent restricts the account types to the specified
974 * list.
975 */
Alon Albert50359c22013-02-26 14:47:48 -0800976 public static final String EXTRA_ACCOUNT_TYPES = "account_types";
Erikeebc8e22010-02-18 13:27:19 -0800977
Tadashi G. Takaoka25480202011-01-20 23:13:02 +0900978 public static final String EXTRA_INPUT_METHOD_ID = "input_method_id";
979
Barnaby James48f35522014-07-16 14:27:39 -0700980 /**
Dianne Hackbornd7c03952014-08-29 17:32:04 -0700981 * @hide
Barnaby James48f35522014-07-16 14:27:39 -0700982 * Activity Extra: Enable or disable Airplane Mode.
983 * <p>
984 * This can be passed as an extra field to the {@link #ACTION_VOICE_CONTROL_AIRPLANE_MODE}
985 * intent as a boolean.
986 */
Dianne Hackbornd7c03952014-08-29 17:32:04 -0700987 @SystemApi
Barnaby James48f35522014-07-16 14:27:39 -0700988 public static final String EXTRA_AIRPLANE_MODE_ENABLED = "airplane_mode_enabled";
989
The Android Open Source Project9066cfe2009-03-03 19:31:44 -0800990 private static final String JID_RESOURCE_PREFIX = "android";
991
992 public static final String AUTHORITY = "settings";
993
994 private static final String TAG = "Settings";
Christopher Tate06efb532012-08-24 15:29:27 -0700995 private static final boolean LOCAL_LOGV = false;
The Android Open Source Project9066cfe2009-03-03 19:31:44 -0800996
David Christie3f7b6522013-08-06 19:19:08 -0700997 // Lock ensures that when enabling/disabling the master location switch, we don't end up
998 // with a partial enable/disable state in multi-threaded situations.
999 private static final Object mLocationSettingsLock = new Object();
1000
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001001 public static class SettingNotFoundException extends AndroidException {
1002 public SettingNotFoundException(String msg) {
1003 super(msg);
1004 }
1005 }
1006
1007 /**
1008 * Common base for tables of name/value settings.
1009 */
1010 public static class NameValueTable implements BaseColumns {
1011 public static final String NAME = "name";
1012 public static final String VALUE = "value";
1013
1014 protected static boolean putString(ContentResolver resolver, Uri uri,
1015 String name, String value) {
1016 // The database will take care of replacing duplicates.
1017 try {
1018 ContentValues values = new ContentValues();
1019 values.put(NAME, name);
1020 values.put(VALUE, value);
1021 resolver.insert(uri, values);
1022 return true;
1023 } catch (SQLException e) {
Dianne Hackborna33e3f72009-09-29 17:28:24 -07001024 Log.w(TAG, "Can't set key " + name + " in " + uri, e);
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001025 return false;
1026 }
1027 }
1028
1029 public static Uri getUriFor(Uri uri, String name) {
1030 return Uri.withAppendedPath(uri, name);
1031 }
1032 }
1033
Brad Fitzpatrick1877d012010-03-04 17:48:13 -08001034 // Thread-safe.
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001035 private static class NameValueCache {
1036 private final String mVersionSystemProperty;
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001037 private final Uri mUri;
1038
Brad Fitzpatrick1877d012010-03-04 17:48:13 -08001039 private static final String[] SELECT_VALUE =
1040 new String[] { Settings.NameValueTable.VALUE };
1041 private static final String NAME_EQ_PLACEHOLDER = "name=?";
1042
1043 // Must synchronize on 'this' to access mValues and mValuesVersion.
Dan Egnor799f7212009-11-24 16:24:44 -08001044 private final HashMap<String, String> mValues = new HashMap<String, String>();
1045 private long mValuesVersion = 0;
1046
Brad Fitzpatrick1877d012010-03-04 17:48:13 -08001047 // Initially null; set lazily and held forever. Synchronized on 'this'.
1048 private IContentProvider mContentProvider = null;
1049
1050 // The method we'll call (or null, to not use) on the provider
1051 // for the fast path of retrieving settings.
Christopher Tate06efb532012-08-24 15:29:27 -07001052 private final String mCallGetCommand;
1053 private final String mCallSetCommand;
Brad Fitzpatrick1877d012010-03-04 17:48:13 -08001054
Christopher Tate06efb532012-08-24 15:29:27 -07001055 public NameValueCache(String versionSystemProperty, Uri uri,
1056 String getCommand, String setCommand) {
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001057 mVersionSystemProperty = versionSystemProperty;
1058 mUri = uri;
Christopher Tate06efb532012-08-24 15:29:27 -07001059 mCallGetCommand = getCommand;
1060 mCallSetCommand = setCommand;
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001061 }
1062
Christopher Tate06efb532012-08-24 15:29:27 -07001063 private IContentProvider lazyGetProvider(ContentResolver cr) {
1064 IContentProvider cp = null;
1065 synchronized (this) {
1066 cp = mContentProvider;
1067 if (cp == null) {
1068 cp = mContentProvider = cr.acquireProvider(mUri.getAuthority());
1069 }
1070 }
1071 return cp;
1072 }
1073
1074 public boolean putStringForUser(ContentResolver cr, String name, String value,
1075 final int userHandle) {
1076 try {
1077 Bundle arg = new Bundle();
1078 arg.putString(Settings.NameValueTable.VALUE, value);
Christopher Tated5fe1472012-09-10 15:48:38 -07001079 arg.putInt(CALL_METHOD_USER_KEY, userHandle);
Christopher Tate06efb532012-08-24 15:29:27 -07001080 IContentProvider cp = lazyGetProvider(cr);
Dianne Hackborn35654b62013-01-14 17:38:02 -08001081 cp.call(cr.getPackageName(), mCallSetCommand, name, arg);
Christopher Tate06efb532012-08-24 15:29:27 -07001082 } catch (RemoteException e) {
1083 Log.w(TAG, "Can't set key " + name + " in " + mUri, e);
1084 return false;
1085 }
1086 return true;
1087 }
1088
Christopher Tate06efb532012-08-24 15:29:27 -07001089 public String getStringForUser(ContentResolver cr, String name, final int userHandle) {
Christopher Tate78d2a662012-09-13 16:19:44 -07001090 final boolean isSelf = (userHandle == UserHandle.myUserId());
1091 if (isSelf) {
1092 long newValuesVersion = SystemProperties.getLong(mVersionSystemProperty, 0);
Dan Egnor799f7212009-11-24 16:24:44 -08001093
Christopher Tate78d2a662012-09-13 16:19:44 -07001094 // Our own user's settings data uses a client-side cache
1095 synchronized (this) {
1096 if (mValuesVersion != newValuesVersion) {
1097 if (LOCAL_LOGV || false) {
1098 Log.v(TAG, "invalidate [" + mUri.getLastPathSegment() + "]: current "
1099 + newValuesVersion + " != cached " + mValuesVersion);
1100 }
1101
1102 mValues.clear();
1103 mValuesVersion = newValuesVersion;
Dan Egnor799f7212009-11-24 16:24:44 -08001104 }
1105
Christopher Tate78d2a662012-09-13 16:19:44 -07001106 if (mValues.containsKey(name)) {
1107 return mValues.get(name); // Could be null, that's OK -- negative caching
1108 }
Dan Egnor799f7212009-11-24 16:24:44 -08001109 }
Christopher Tate78d2a662012-09-13 16:19:44 -07001110 } else {
1111 if (LOCAL_LOGV) Log.v(TAG, "get setting for user " + userHandle
1112 + " by user " + UserHandle.myUserId() + " so skipping cache");
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001113 }
Dan Egnor799f7212009-11-24 16:24:44 -08001114
Christopher Tate06efb532012-08-24 15:29:27 -07001115 IContentProvider cp = lazyGetProvider(cr);
Brad Fitzpatrick1877d012010-03-04 17:48:13 -08001116
1117 // Try the fast path first, not using query(). If this
1118 // fails (alternate Settings provider that doesn't support
1119 // this interface?) then we fall back to the query/table
1120 // interface.
Christopher Tate06efb532012-08-24 15:29:27 -07001121 if (mCallGetCommand != null) {
Brad Fitzpatrick1877d012010-03-04 17:48:13 -08001122 try {
Christopher Tate06efb532012-08-24 15:29:27 -07001123 Bundle args = null;
Christopher Tate5e08af02012-09-21 17:17:22 -07001124 if (!isSelf) {
Christopher Tate06efb532012-08-24 15:29:27 -07001125 args = new Bundle();
1126 args.putInt(CALL_METHOD_USER_KEY, userHandle);
1127 }
Dianne Hackborn35654b62013-01-14 17:38:02 -08001128 Bundle b = cp.call(cr.getPackageName(), mCallGetCommand, name, args);
Brad Fitzpatrick1877d012010-03-04 17:48:13 -08001129 if (b != null) {
1130 String value = b.getPairValue();
Christopher Tate78d2a662012-09-13 16:19:44 -07001131 // Don't update our cache for reads of other users' data
1132 if (isSelf) {
1133 synchronized (this) {
1134 mValues.put(name, value);
1135 }
1136 } else {
1137 if (LOCAL_LOGV) Log.i(TAG, "call-query of user " + userHandle
1138 + " by " + UserHandle.myUserId()
1139 + " so not updating cache");
Brad Fitzpatrick1877d012010-03-04 17:48:13 -08001140 }
1141 return value;
1142 }
1143 // If the response Bundle is null, we fall through
1144 // to the query interface below.
1145 } catch (RemoteException e) {
1146 // Not supported by the remote side? Fall through
1147 // to query().
1148 }
1149 }
1150
Dan Egnor799f7212009-11-24 16:24:44 -08001151 Cursor c = null;
1152 try {
Dianne Hackborn35654b62013-01-14 17:38:02 -08001153 c = cp.query(cr.getPackageName(), mUri, SELECT_VALUE, NAME_EQ_PLACEHOLDER,
Jeff Brown75ea64f2012-01-25 19:37:13 -08001154 new String[]{name}, null, null);
Dan Egnor799f7212009-11-24 16:24:44 -08001155 if (c == null) {
1156 Log.w(TAG, "Can't get key " + name + " from " + mUri);
1157 return null;
1158 }
1159
1160 String value = c.moveToNext() ? c.getString(0) : null;
Brad Fitzpatrick1877d012010-03-04 17:48:13 -08001161 synchronized (this) {
Dan Egnor799f7212009-11-24 16:24:44 -08001162 mValues.put(name, value);
1163 }
1164 if (LOCAL_LOGV) {
1165 Log.v(TAG, "cache miss [" + mUri.getLastPathSegment() + "]: " +
1166 name + " = " + (value == null ? "(null)" : value));
1167 }
1168 return value;
Brad Fitzpatrick1877d012010-03-04 17:48:13 -08001169 } catch (RemoteException e) {
Dan Egnor799f7212009-11-24 16:24:44 -08001170 Log.w(TAG, "Can't get key " + name + " from " + mUri, e);
1171 return null; // Return null, but don't cache it.
1172 } finally {
1173 if (c != null) c.close();
1174 }
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001175 }
1176 }
1177
1178 /**
1179 * System settings, containing miscellaneous system preferences. This
1180 * table holds simple name/value pairs. There are convenience
1181 * functions for accessing individual settings entries.
1182 */
1183 public static final class System extends NameValueTable {
1184 public static final String SYS_PROP_SETTING_VERSION = "sys.settings_system_version";
1185
Dianne Hackborn139748f2012-09-24 11:36:57 -07001186 /**
1187 * The content:// style URL for this table
1188 */
1189 public static final Uri CONTENT_URI =
1190 Uri.parse("content://" + AUTHORITY + "/system");
1191
1192 private static final NameValueCache sNameValueCache = new NameValueCache(
1193 SYS_PROP_SETTING_VERSION,
1194 CONTENT_URI,
1195 CALL_METHOD_GET_SYSTEM,
1196 CALL_METHOD_PUT_SYSTEM);
Jaikumar Ganesh9bfbfbd2009-05-15 12:05:56 -07001197
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001198 private static final HashSet<String> MOVED_TO_SECURE;
1199 static {
1200 MOVED_TO_SECURE = new HashSet<String>(30);
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001201 MOVED_TO_SECURE.add(Secure.ANDROID_ID);
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001202 MOVED_TO_SECURE.add(Secure.HTTP_PROXY);
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001203 MOVED_TO_SECURE.add(Secure.LOCATION_PROVIDERS_ALLOWED);
Danielle Millett925a7d82012-03-19 18:02:20 -04001204 MOVED_TO_SECURE.add(Secure.LOCK_BIOMETRIC_WEAK_FLAGS);
Amith Yamasani156c4352010-03-05 17:10:03 -08001205 MOVED_TO_SECURE.add(Secure.LOCK_PATTERN_ENABLED);
1206 MOVED_TO_SECURE.add(Secure.LOCK_PATTERN_VISIBLE);
1207 MOVED_TO_SECURE.add(Secure.LOCK_PATTERN_TACTILE_FEEDBACK_ENABLED);
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001208 MOVED_TO_SECURE.add(Secure.LOGGING_ID);
1209 MOVED_TO_SECURE.add(Secure.PARENTAL_CONTROL_ENABLED);
1210 MOVED_TO_SECURE.add(Secure.PARENTAL_CONTROL_LAST_UPDATE);
1211 MOVED_TO_SECURE.add(Secure.PARENTAL_CONTROL_REDIRECT_URL);
1212 MOVED_TO_SECURE.add(Secure.SETTINGS_CLASSNAME);
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001213 MOVED_TO_SECURE.add(Secure.USE_GOOGLE_MAIL);
1214 MOVED_TO_SECURE.add(Secure.WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON);
1215 MOVED_TO_SECURE.add(Secure.WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY);
1216 MOVED_TO_SECURE.add(Secure.WIFI_NUM_OPEN_NETWORKS_KEPT);
1217 MOVED_TO_SECURE.add(Secure.WIFI_ON);
1218 MOVED_TO_SECURE.add(Secure.WIFI_WATCHDOG_ACCEPTABLE_PACKET_LOSS_PERCENTAGE);
1219 MOVED_TO_SECURE.add(Secure.WIFI_WATCHDOG_AP_COUNT);
1220 MOVED_TO_SECURE.add(Secure.WIFI_WATCHDOG_BACKGROUND_CHECK_DELAY_MS);
1221 MOVED_TO_SECURE.add(Secure.WIFI_WATCHDOG_BACKGROUND_CHECK_ENABLED);
1222 MOVED_TO_SECURE.add(Secure.WIFI_WATCHDOG_BACKGROUND_CHECK_TIMEOUT_MS);
1223 MOVED_TO_SECURE.add(Secure.WIFI_WATCHDOG_INITIAL_IGNORED_PING_COUNT);
1224 MOVED_TO_SECURE.add(Secure.WIFI_WATCHDOG_MAX_AP_CHECKS);
1225 MOVED_TO_SECURE.add(Secure.WIFI_WATCHDOG_ON);
1226 MOVED_TO_SECURE.add(Secure.WIFI_WATCHDOG_PING_COUNT);
1227 MOVED_TO_SECURE.add(Secure.WIFI_WATCHDOG_PING_DELAY_MS);
1228 MOVED_TO_SECURE.add(Secure.WIFI_WATCHDOG_PING_TIMEOUT_MS);
Christopher Tateaa036a22014-05-19 16:33:27 -07001229
1230 // At one time in System, then Global, but now back in Secure
1231 MOVED_TO_SECURE.add(Secure.INSTALL_NON_MARKET_APPS);
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001232 }
1233
Christopher Tate06efb532012-08-24 15:29:27 -07001234 private static final HashSet<String> MOVED_TO_GLOBAL;
Christopher Tate66488d62012-10-02 11:58:01 -07001235 private static final HashSet<String> MOVED_TO_SECURE_THEN_GLOBAL;
Christopher Tate06efb532012-08-24 15:29:27 -07001236 static {
1237 MOVED_TO_GLOBAL = new HashSet<String>();
Christopher Tate66488d62012-10-02 11:58:01 -07001238 MOVED_TO_SECURE_THEN_GLOBAL = new HashSet<String>();
1239
Christopher Tate92198742012-09-07 12:00:13 -07001240 // these were originally in system but migrated to secure in the past,
1241 // so are duplicated in the Secure.* namespace
Christopher Tate66488d62012-10-02 11:58:01 -07001242 MOVED_TO_SECURE_THEN_GLOBAL.add(Global.ADB_ENABLED);
1243 MOVED_TO_SECURE_THEN_GLOBAL.add(Global.BLUETOOTH_ON);
1244 MOVED_TO_SECURE_THEN_GLOBAL.add(Global.DATA_ROAMING);
1245 MOVED_TO_SECURE_THEN_GLOBAL.add(Global.DEVICE_PROVISIONED);
Christopher Tate66488d62012-10-02 11:58:01 -07001246 MOVED_TO_SECURE_THEN_GLOBAL.add(Global.USB_MASS_STORAGE_ENABLED);
1247 MOVED_TO_SECURE_THEN_GLOBAL.add(Global.HTTP_PROXY);
Christopher Tate06efb532012-08-24 15:29:27 -07001248
Christopher Tate92198742012-09-07 12:00:13 -07001249 // these are moving directly from system to global
Christopher Tate06efb532012-08-24 15:29:27 -07001250 MOVED_TO_GLOBAL.add(Settings.Global.AIRPLANE_MODE_ON);
1251 MOVED_TO_GLOBAL.add(Settings.Global.AIRPLANE_MODE_RADIOS);
1252 MOVED_TO_GLOBAL.add(Settings.Global.AIRPLANE_MODE_TOGGLEABLE_RADIOS);
1253 MOVED_TO_GLOBAL.add(Settings.Global.AUTO_TIME);
1254 MOVED_TO_GLOBAL.add(Settings.Global.AUTO_TIME_ZONE);
1255 MOVED_TO_GLOBAL.add(Settings.Global.CAR_DOCK_SOUND);
1256 MOVED_TO_GLOBAL.add(Settings.Global.CAR_UNDOCK_SOUND);
1257 MOVED_TO_GLOBAL.add(Settings.Global.DESK_DOCK_SOUND);
1258 MOVED_TO_GLOBAL.add(Settings.Global.DESK_UNDOCK_SOUND);
1259 MOVED_TO_GLOBAL.add(Settings.Global.DOCK_SOUNDS_ENABLED);
1260 MOVED_TO_GLOBAL.add(Settings.Global.LOCK_SOUND);
1261 MOVED_TO_GLOBAL.add(Settings.Global.UNLOCK_SOUND);
1262 MOVED_TO_GLOBAL.add(Settings.Global.LOW_BATTERY_SOUND);
1263 MOVED_TO_GLOBAL.add(Settings.Global.POWER_SOUNDS_ENABLED);
1264 MOVED_TO_GLOBAL.add(Settings.Global.STAY_ON_WHILE_PLUGGED_IN);
1265 MOVED_TO_GLOBAL.add(Settings.Global.WIFI_SLEEP_POLICY);
Eric Laurentbc0fab1f2012-09-19 11:24:41 -07001266 MOVED_TO_GLOBAL.add(Settings.Global.MODE_RINGER);
Jeff Sharkey6e2bee72012-10-01 13:39:08 -07001267 MOVED_TO_GLOBAL.add(Settings.Global.WINDOW_ANIMATION_SCALE);
1268 MOVED_TO_GLOBAL.add(Settings.Global.TRANSITION_ANIMATION_SCALE);
1269 MOVED_TO_GLOBAL.add(Settings.Global.ANIMATOR_DURATION_SCALE);
1270 MOVED_TO_GLOBAL.add(Settings.Global.FANCY_IME_ANIMATIONS);
1271 MOVED_TO_GLOBAL.add(Settings.Global.COMPATIBILITY_MODE);
1272 MOVED_TO_GLOBAL.add(Settings.Global.EMERGENCY_TONE);
1273 MOVED_TO_GLOBAL.add(Settings.Global.CALL_AUTO_RETRY);
1274 MOVED_TO_GLOBAL.add(Settings.Global.DEBUG_APP);
1275 MOVED_TO_GLOBAL.add(Settings.Global.WAIT_FOR_DEBUGGER);
1276 MOVED_TO_GLOBAL.add(Settings.Global.SHOW_PROCESSES);
1277 MOVED_TO_GLOBAL.add(Settings.Global.ALWAYS_FINISH_ACTIVITIES);
Geremy Condraa0735112013-03-26 21:49:26 -07001278 MOVED_TO_GLOBAL.add(Settings.Global.TZINFO_UPDATE_CONTENT_URL);
1279 MOVED_TO_GLOBAL.add(Settings.Global.TZINFO_UPDATE_METADATA_URL);
1280 MOVED_TO_GLOBAL.add(Settings.Global.SELINUX_UPDATE_CONTENT_URL);
1281 MOVED_TO_GLOBAL.add(Settings.Global.SELINUX_UPDATE_METADATA_URL);
1282 MOVED_TO_GLOBAL.add(Settings.Global.SMS_SHORT_CODES_UPDATE_CONTENT_URL);
1283 MOVED_TO_GLOBAL.add(Settings.Global.SMS_SHORT_CODES_UPDATE_METADATA_URL);
1284 MOVED_TO_GLOBAL.add(Settings.Global.CERT_PIN_UPDATE_CONTENT_URL);
1285 MOVED_TO_GLOBAL.add(Settings.Global.CERT_PIN_UPDATE_METADATA_URL);
Christopher Tate06efb532012-08-24 15:29:27 -07001286 }
1287
Christopher Tate66488d62012-10-02 11:58:01 -07001288 /** @hide */
1289 public static void getMovedKeys(HashSet<String> outKeySet) {
1290 outKeySet.addAll(MOVED_TO_GLOBAL);
1291 outKeySet.addAll(MOVED_TO_SECURE_THEN_GLOBAL);
1292 }
1293
1294 /** @hide */
1295 public static void getNonLegacyMovedKeys(HashSet<String> outKeySet) {
1296 outKeySet.addAll(MOVED_TO_GLOBAL);
1297 }
1298
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001299 /**
1300 * Look up a name in the database.
1301 * @param resolver to access the database with
1302 * @param name to look up in the table
1303 * @return the corresponding value, or null if not present
1304 */
Dianne Hackborn139748f2012-09-24 11:36:57 -07001305 public static String getString(ContentResolver resolver, String name) {
Christopher Tate06efb532012-08-24 15:29:27 -07001306 return getStringForUser(resolver, name, UserHandle.myUserId());
1307 }
1308
1309 /** @hide */
Dianne Hackborn139748f2012-09-24 11:36:57 -07001310 public static String getStringForUser(ContentResolver resolver, String name,
Christopher Tate06efb532012-08-24 15:29:27 -07001311 int userHandle) {
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001312 if (MOVED_TO_SECURE.contains(name)) {
1313 Log.w(TAG, "Setting " + name + " has moved from android.provider.Settings.System"
1314 + " to android.provider.Settings.Secure, returning read-only value.");
Christopher Tate06efb532012-08-24 15:29:27 -07001315 return Secure.getStringForUser(resolver, name, userHandle);
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001316 }
Christopher Tate66488d62012-10-02 11:58:01 -07001317 if (MOVED_TO_GLOBAL.contains(name) || MOVED_TO_SECURE_THEN_GLOBAL.contains(name)) {
Christopher Tate06efb532012-08-24 15:29:27 -07001318 Log.w(TAG, "Setting " + name + " has moved from android.provider.Settings.System"
1319 + " to android.provider.Settings.Global, returning read-only value.");
1320 return Global.getStringForUser(resolver, name, userHandle);
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001321 }
Christopher Tate06efb532012-08-24 15:29:27 -07001322 return sNameValueCache.getStringForUser(resolver, name, userHandle);
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001323 }
1324
1325 /**
1326 * Store a name/value pair into the database.
1327 * @param resolver to access the database with
1328 * @param name to store
1329 * @param value to associate with the name
1330 * @return true if the value was set, false on database errors
1331 */
1332 public static boolean putString(ContentResolver resolver, String name, String value) {
Christopher Tate06efb532012-08-24 15:29:27 -07001333 return putStringForUser(resolver, name, value, UserHandle.myUserId());
1334 }
1335
1336 /** @hide */
1337 public static boolean putStringForUser(ContentResolver resolver, String name, String value,
1338 int userHandle) {
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001339 if (MOVED_TO_SECURE.contains(name)) {
1340 Log.w(TAG, "Setting " + name + " has moved from android.provider.Settings.System"
1341 + " to android.provider.Settings.Secure, value is unchanged.");
1342 return false;
1343 }
Christopher Tate66488d62012-10-02 11:58:01 -07001344 if (MOVED_TO_GLOBAL.contains(name) || MOVED_TO_SECURE_THEN_GLOBAL.contains(name)) {
Christopher Tate06efb532012-08-24 15:29:27 -07001345 Log.w(TAG, "Setting " + name + " has moved from android.provider.Settings.System"
1346 + " to android.provider.Settings.Global, value is unchanged.");
1347 return false;
1348 }
Christopher Tate06efb532012-08-24 15:29:27 -07001349 return sNameValueCache.putStringForUser(resolver, name, value, userHandle);
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001350 }
1351
1352 /**
1353 * Construct the content URI for a particular name/value pair,
1354 * useful for monitoring changes with a ContentObserver.
1355 * @param name to look up in the table
1356 * @return the corresponding content URI, or null if not present
1357 */
1358 public static Uri getUriFor(String name) {
1359 if (MOVED_TO_SECURE.contains(name)) {
1360 Log.w(TAG, "Setting " + name + " has moved from android.provider.Settings.System"
1361 + " to android.provider.Settings.Secure, returning Secure URI.");
1362 return Secure.getUriFor(Secure.CONTENT_URI, name);
1363 }
Christopher Tate66488d62012-10-02 11:58:01 -07001364 if (MOVED_TO_GLOBAL.contains(name) || MOVED_TO_SECURE_THEN_GLOBAL.contains(name)) {
Christopher Tate06efb532012-08-24 15:29:27 -07001365 Log.w(TAG, "Setting " + name + " has moved from android.provider.Settings.System"
1366 + " to android.provider.Settings.Global, returning read-only global URI.");
1367 return Global.getUriFor(Global.CONTENT_URI, name);
1368 }
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001369 return getUriFor(CONTENT_URI, name);
1370 }
1371
1372 /**
1373 * Convenience function for retrieving a single system settings value
1374 * as an integer. Note that internally setting values are always
1375 * stored as strings; this function converts the string to an integer
1376 * for you. The default value will be returned if the setting is
1377 * not defined or not an integer.
1378 *
1379 * @param cr The ContentResolver to access.
1380 * @param name The name of the setting to retrieve.
1381 * @param def Value to return if the setting is not defined.
1382 *
1383 * @return The setting's current value, or 'def' if it is not defined
1384 * or not a valid integer.
1385 */
1386 public static int getInt(ContentResolver cr, String name, int def) {
Christopher Tate06efb532012-08-24 15:29:27 -07001387 return getIntForUser(cr, name, def, UserHandle.myUserId());
1388 }
1389
1390 /** @hide */
1391 public static int getIntForUser(ContentResolver cr, String name, int def, int userHandle) {
1392 String v = getStringForUser(cr, name, userHandle);
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001393 try {
1394 return v != null ? Integer.parseInt(v) : def;
1395 } catch (NumberFormatException e) {
1396 return def;
1397 }
1398 }
1399
1400 /**
1401 * Convenience function for retrieving a single system settings value
1402 * as an integer. Note that internally setting values are always
1403 * stored as strings; this function converts the string to an integer
1404 * for you.
1405 * <p>
1406 * This version does not take a default value. If the setting has not
1407 * been set, or the string value is not a number,
1408 * it throws {@link SettingNotFoundException}.
1409 *
1410 * @param cr The ContentResolver to access.
1411 * @param name The name of the setting to retrieve.
1412 *
1413 * @throws SettingNotFoundException Thrown if a setting by the given
1414 * name can't be found or the setting value is not an integer.
1415 *
1416 * @return The setting's current value.
1417 */
1418 public static int getInt(ContentResolver cr, String name)
1419 throws SettingNotFoundException {
Christopher Tate06efb532012-08-24 15:29:27 -07001420 return getIntForUser(cr, name, UserHandle.myUserId());
1421 }
1422
1423 /** @hide */
1424 public static int getIntForUser(ContentResolver cr, String name, int userHandle)
1425 throws SettingNotFoundException {
1426 String v = getStringForUser(cr, name, userHandle);
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001427 try {
1428 return Integer.parseInt(v);
1429 } catch (NumberFormatException e) {
1430 throw new SettingNotFoundException(name);
1431 }
1432 }
1433
1434 /**
1435 * Convenience function for updating a single settings value as an
1436 * integer. This will either create a new entry in the table if the
1437 * given name does not exist, or modify the value of the existing row
1438 * with that name. Note that internally setting values are always
1439 * stored as strings, so this function converts the given value to a
1440 * string before storing it.
1441 *
1442 * @param cr The ContentResolver to access.
1443 * @param name The name of the setting to modify.
1444 * @param value The new value for the setting.
1445 * @return true if the value was set, false on database errors
1446 */
1447 public static boolean putInt(ContentResolver cr, String name, int value) {
Christopher Tate06efb532012-08-24 15:29:27 -07001448 return putIntForUser(cr, name, value, UserHandle.myUserId());
1449 }
1450
1451 /** @hide */
1452 public static boolean putIntForUser(ContentResolver cr, String name, int value,
1453 int userHandle) {
1454 return putStringForUser(cr, name, Integer.toString(value), userHandle);
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001455 }
1456
1457 /**
1458 * Convenience function for retrieving a single system settings value
1459 * as a {@code long}. Note that internally setting values are always
1460 * stored as strings; this function converts the string to a {@code long}
1461 * for you. The default value will be returned if the setting is
1462 * not defined or not a {@code long}.
1463 *
1464 * @param cr The ContentResolver to access.
1465 * @param name The name of the setting to retrieve.
1466 * @param def Value to return if the setting is not defined.
1467 *
1468 * @return The setting's current value, or 'def' if it is not defined
1469 * or not a valid {@code long}.
1470 */
1471 public static long getLong(ContentResolver cr, String name, long def) {
Christopher Tate06efb532012-08-24 15:29:27 -07001472 return getLongForUser(cr, name, def, UserHandle.myUserId());
1473 }
1474
1475 /** @hide */
1476 public static long getLongForUser(ContentResolver cr, String name, long def,
1477 int userHandle) {
1478 String valString = getStringForUser(cr, name, userHandle);
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001479 long value;
1480 try {
1481 value = valString != null ? Long.parseLong(valString) : def;
1482 } catch (NumberFormatException e) {
1483 value = def;
1484 }
1485 return value;
1486 }
1487
1488 /**
1489 * Convenience function for retrieving a single system settings value
1490 * as a {@code long}. Note that internally setting values are always
1491 * stored as strings; this function converts the string to a {@code long}
1492 * for you.
1493 * <p>
1494 * This version does not take a default value. If the setting has not
1495 * been set, or the string value is not a number,
1496 * it throws {@link SettingNotFoundException}.
1497 *
1498 * @param cr The ContentResolver to access.
1499 * @param name The name of the setting to retrieve.
1500 *
1501 * @return The setting's current value.
1502 * @throws SettingNotFoundException Thrown if a setting by the given
1503 * name can't be found or the setting value is not an integer.
1504 */
1505 public static long getLong(ContentResolver cr, String name)
1506 throws SettingNotFoundException {
Christopher Tate06efb532012-08-24 15:29:27 -07001507 return getLongForUser(cr, name, UserHandle.myUserId());
1508 }
1509
1510 /** @hide */
1511 public static long getLongForUser(ContentResolver cr, String name, int userHandle)
1512 throws SettingNotFoundException {
1513 String valString = getStringForUser(cr, name, userHandle);
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001514 try {
1515 return Long.parseLong(valString);
1516 } catch (NumberFormatException e) {
1517 throw new SettingNotFoundException(name);
1518 }
1519 }
1520
1521 /**
1522 * Convenience function for updating a single settings value as a long
1523 * integer. This will either create a new entry in the table if the
1524 * given name does not exist, or modify the value of the existing row
1525 * with that name. Note that internally setting values are always
1526 * stored as strings, so this function converts the given value to a
1527 * string before storing it.
1528 *
1529 * @param cr The ContentResolver to access.
1530 * @param name The name of the setting to modify.
1531 * @param value The new value for the setting.
1532 * @return true if the value was set, false on database errors
1533 */
1534 public static boolean putLong(ContentResolver cr, String name, long value) {
Christopher Tate06efb532012-08-24 15:29:27 -07001535 return putLongForUser(cr, name, value, UserHandle.myUserId());
1536 }
1537
1538 /** @hide */
1539 public static boolean putLongForUser(ContentResolver cr, String name, long value,
1540 int userHandle) {
1541 return putStringForUser(cr, name, Long.toString(value), userHandle);
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001542 }
1543
1544 /**
1545 * Convenience function for retrieving a single system settings value
1546 * as a floating point number. Note that internally setting values are
1547 * always stored as strings; this function converts the string to an
1548 * float for you. The default value will be returned if the setting
1549 * is not defined or not a valid float.
1550 *
1551 * @param cr The ContentResolver to access.
1552 * @param name The name of the setting to retrieve.
1553 * @param def Value to return if the setting is not defined.
1554 *
1555 * @return The setting's current value, or 'def' if it is not defined
1556 * or not a valid float.
1557 */
1558 public static float getFloat(ContentResolver cr, String name, float def) {
Christopher Tate06efb532012-08-24 15:29:27 -07001559 return getFloatForUser(cr, name, def, UserHandle.myUserId());
1560 }
1561
1562 /** @hide */
1563 public static float getFloatForUser(ContentResolver cr, String name, float def,
1564 int userHandle) {
1565 String v = getStringForUser(cr, name, userHandle);
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001566 try {
1567 return v != null ? Float.parseFloat(v) : def;
1568 } catch (NumberFormatException e) {
1569 return def;
1570 }
1571 }
1572
1573 /**
1574 * Convenience function for retrieving a single system settings value
1575 * as a float. Note that internally setting values are always
1576 * stored as strings; this function converts the string to a float
1577 * for you.
1578 * <p>
1579 * This version does not take a default value. If the setting has not
1580 * been set, or the string value is not a number,
1581 * it throws {@link SettingNotFoundException}.
1582 *
1583 * @param cr The ContentResolver to access.
1584 * @param name The name of the setting to retrieve.
1585 *
1586 * @throws SettingNotFoundException Thrown if a setting by the given
1587 * name can't be found or the setting value is not a float.
1588 *
1589 * @return The setting's current value.
1590 */
1591 public static float getFloat(ContentResolver cr, String name)
1592 throws SettingNotFoundException {
Christopher Tate06efb532012-08-24 15:29:27 -07001593 return getFloatForUser(cr, name, UserHandle.myUserId());
1594 }
1595
1596 /** @hide */
1597 public static float getFloatForUser(ContentResolver cr, String name, int userHandle)
1598 throws SettingNotFoundException {
1599 String v = getStringForUser(cr, name, userHandle);
Brian Muramatsue1d46982010-12-06 17:34:20 -08001600 if (v == null) {
1601 throw new SettingNotFoundException(name);
1602 }
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001603 try {
1604 return Float.parseFloat(v);
1605 } catch (NumberFormatException e) {
1606 throw new SettingNotFoundException(name);
1607 }
1608 }
1609
1610 /**
1611 * Convenience function for updating a single settings value as a
1612 * floating point number. This will either create a new entry in the
1613 * table if the given name does not exist, or modify the value of the
1614 * existing row with that name. Note that internally setting values
1615 * are always stored as strings, so this function converts the given
1616 * value to a string before storing it.
1617 *
1618 * @param cr The ContentResolver to access.
1619 * @param name The name of the setting to modify.
1620 * @param value The new value for the setting.
1621 * @return true if the value was set, false on database errors
1622 */
1623 public static boolean putFloat(ContentResolver cr, String name, float value) {
Christopher Tate06efb532012-08-24 15:29:27 -07001624 return putFloatForUser(cr, name, value, UserHandle.myUserId());
1625 }
1626
1627 /** @hide */
1628 public static boolean putFloatForUser(ContentResolver cr, String name, float value,
1629 int userHandle) {
1630 return putStringForUser(cr, name, Float.toString(value), userHandle);
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001631 }
1632
1633 /**
1634 * Convenience function to read all of the current
1635 * configuration-related settings into a
1636 * {@link Configuration} object.
1637 *
1638 * @param cr The ContentResolver to access.
1639 * @param outConfig Where to place the configuration settings.
1640 */
1641 public static void getConfiguration(ContentResolver cr, Configuration outConfig) {
Christopher Tate06efb532012-08-24 15:29:27 -07001642 getConfigurationForUser(cr, outConfig, UserHandle.myUserId());
1643 }
1644
1645 /** @hide */
1646 public static void getConfigurationForUser(ContentResolver cr, Configuration outConfig,
1647 int userHandle) {
1648 outConfig.fontScale = Settings.System.getFloatForUser(
1649 cr, FONT_SCALE, outConfig.fontScale, userHandle);
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001650 if (outConfig.fontScale < 0) {
1651 outConfig.fontScale = 1;
1652 }
1653 }
1654
1655 /**
Dianne Hackborn31ca8542011-07-19 14:58:28 -07001656 * @hide Erase the fields in the Configuration that should be applied
1657 * by the settings.
1658 */
1659 public static void clearConfiguration(Configuration inoutConfig) {
1660 inoutConfig.fontScale = 0;
1661 }
Narayan Kamath6d632962011-08-24 11:51:37 +01001662
Dianne Hackborn31ca8542011-07-19 14:58:28 -07001663 /**
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001664 * Convenience function to write a batch of configuration-related
1665 * settings from a {@link Configuration} object.
1666 *
1667 * @param cr The ContentResolver to access.
1668 * @param config The settings to write.
1669 * @return true if the values were set, false on database errors
1670 */
1671 public static boolean putConfiguration(ContentResolver cr, Configuration config) {
Christopher Tate06efb532012-08-24 15:29:27 -07001672 return putConfigurationForUser(cr, config, UserHandle.myUserId());
1673 }
1674
1675 /** @hide */
1676 public static boolean putConfigurationForUser(ContentResolver cr, Configuration config,
1677 int userHandle) {
1678 return Settings.System.putFloatForUser(cr, FONT_SCALE, config.fontScale, userHandle);
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001679 }
1680
Dianne Hackbornb8b11a02010-03-10 15:53:11 -08001681 /** @hide */
1682 public static boolean hasInterestingConfigurationChanges(int changes) {
1683 return (changes&ActivityInfo.CONFIG_FONT_SCALE) != 0;
1684 }
Jaikumar Ganesh545e6702010-06-04 10:23:03 -07001685
Christopher Tate06efb532012-08-24 15:29:27 -07001686 /** @deprecated - Do not use */
1687 @Deprecated
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001688 public static boolean getShowGTalkServiceStatus(ContentResolver cr) {
Christopher Tate06efb532012-08-24 15:29:27 -07001689 return getShowGTalkServiceStatusForUser(cr, UserHandle.myUserId());
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001690 }
1691
Christopher Tate06efb532012-08-24 15:29:27 -07001692 /**
1693 * @hide
1694 * @deprecated - Do not use
1695 */
1696 public static boolean getShowGTalkServiceStatusForUser(ContentResolver cr,
1697 int userHandle) {
1698 return getIntForUser(cr, SHOW_GTALK_SERVICE_STATUS, 0, userHandle) != 0;
1699 }
1700
1701 /** @deprecated - Do not use */
1702 @Deprecated
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001703 public static void setShowGTalkServiceStatus(ContentResolver cr, boolean flag) {
Christopher Tatec8c08382012-09-19 17:18:18 -07001704 setShowGTalkServiceStatusForUser(cr, flag, UserHandle.myUserId());
Christopher Tate06efb532012-08-24 15:29:27 -07001705 }
1706
1707 /**
1708 * @hide
1709 * @deprecated - Do not use
1710 */
1711 @Deprecated
1712 public static void setShowGTalkServiceStatusForUser(ContentResolver cr, boolean flag,
1713 int userHandle) {
1714 putIntForUser(cr, SHOW_GTALK_SERVICE_STATUS, flag ? 1 : 0, userHandle);
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001715 }
1716
1717 /**
Christopher Tate06efb532012-08-24 15:29:27 -07001718 * @deprecated Use {@link android.provider.Settings.Global#STAY_ON_WHILE_PLUGGED_IN} instead
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001719 */
Christopher Tate06efb532012-08-24 15:29:27 -07001720 @Deprecated
1721 public static final String STAY_ON_WHILE_PLUGGED_IN = Global.STAY_ON_WHILE_PLUGGED_IN;
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001722
1723 /**
1724 * What happens when the user presses the end call button if they're not
1725 * on a call.<br/>
1726 * <b>Values:</b><br/>
1727 * 0 - The end button does nothing.<br/>
1728 * 1 - The end button goes to the home screen.<br/>
1729 * 2 - The end button puts the device to sleep and locks the keyguard.<br/>
1730 * 3 - The end button goes to the home screen. If the user is already on the
1731 * home screen, it puts the device to sleep.
1732 */
1733 public static final String END_BUTTON_BEHAVIOR = "end_button_behavior";
1734
1735 /**
David Brown458e8062010-03-08 21:52:11 -08001736 * END_BUTTON_BEHAVIOR value for "go home".
1737 * @hide
1738 */
1739 public static final int END_BUTTON_BEHAVIOR_HOME = 0x1;
1740
1741 /**
1742 * END_BUTTON_BEHAVIOR value for "go to sleep".
1743 * @hide
1744 */
1745 public static final int END_BUTTON_BEHAVIOR_SLEEP = 0x2;
1746
1747 /**
1748 * END_BUTTON_BEHAVIOR default value.
1749 * @hide
1750 */
1751 public static final int END_BUTTON_BEHAVIOR_DEFAULT = END_BUTTON_BEHAVIOR_SLEEP;
1752
1753 /**
Joe Onorato9cdffa12011-04-06 18:27:27 -07001754 * Is advanced settings mode turned on. 0 == no, 1 == yes
1755 * @hide
1756 */
1757 public static final String ADVANCED_SETTINGS = "advanced_settings";
1758
1759 /**
1760 * ADVANCED_SETTINGS default value.
1761 * @hide
1762 */
1763 public static final int ADVANCED_SETTINGS_DEFAULT = 0;
1764
1765 /**
Christopher Tate06efb532012-08-24 15:29:27 -07001766 * @deprecated Use {@link android.provider.Settings.Global#AIRPLANE_MODE_ON} instead
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001767 */
Christopher Tate06efb532012-08-24 15:29:27 -07001768 @Deprecated
1769 public static final String AIRPLANE_MODE_ON = Global.AIRPLANE_MODE_ON;
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001770
1771 /**
Christopher Tate06efb532012-08-24 15:29:27 -07001772 * @deprecated Use {@link android.provider.Settings.Global#RADIO_BLUETOOTH} instead
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001773 */
Christopher Tate06efb532012-08-24 15:29:27 -07001774 @Deprecated
1775 public static final String RADIO_BLUETOOTH = Global.RADIO_BLUETOOTH;
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001776
1777 /**
Christopher Tate06efb532012-08-24 15:29:27 -07001778 * @deprecated Use {@link android.provider.Settings.Global#RADIO_WIFI} instead
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001779 */
Christopher Tate06efb532012-08-24 15:29:27 -07001780 @Deprecated
1781 public static final String RADIO_WIFI = Global.RADIO_WIFI;
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001782
Robert Greenwalt8588e472011-11-08 10:12:25 -08001783 /**
Christopher Tate06efb532012-08-24 15:29:27 -07001784 * @deprecated Use {@link android.provider.Settings.Global#RADIO_WIMAX} instead
Robert Greenwalt8588e472011-11-08 10:12:25 -08001785 * {@hide}
1786 */
Christopher Tate06efb532012-08-24 15:29:27 -07001787 @Deprecated
1788 public static final String RADIO_WIMAX = Global.RADIO_WIMAX;
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001789
1790 /**
Christopher Tate06efb532012-08-24 15:29:27 -07001791 * @deprecated Use {@link android.provider.Settings.Global#RADIO_CELL} instead
Nick Pelly8d32a012011-08-09 07:03:49 -07001792 */
Christopher Tate06efb532012-08-24 15:29:27 -07001793 @Deprecated
1794 public static final String RADIO_CELL = Global.RADIO_CELL;
Nick Pelly8d32a012011-08-09 07:03:49 -07001795
1796 /**
Christopher Tate06efb532012-08-24 15:29:27 -07001797 * @deprecated Use {@link android.provider.Settings.Global#RADIO_NFC} instead
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001798 */
Christopher Tate06efb532012-08-24 15:29:27 -07001799 @Deprecated
1800 public static final String RADIO_NFC = Global.RADIO_NFC;
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001801
1802 /**
Christopher Tate06efb532012-08-24 15:29:27 -07001803 * @deprecated Use {@link android.provider.Settings.Global#AIRPLANE_MODE_RADIOS} instead
1804 */
1805 @Deprecated
1806 public static final String AIRPLANE_MODE_RADIOS = Global.AIRPLANE_MODE_RADIOS;
1807
1808 /**
1809 * @deprecated Use {@link android.provider.Settings.Global#AIRPLANE_MODE_TOGGLEABLE_RADIOS} instead
Mike Lockwoodbd5ddf02009-07-29 21:37:14 -07001810 *
1811 * {@hide}
1812 */
Christopher Tate06efb532012-08-24 15:29:27 -07001813 @Deprecated
1814 public static final String AIRPLANE_MODE_TOGGLEABLE_RADIOS =
1815 Global.AIRPLANE_MODE_TOGGLEABLE_RADIOS;
Mike Lockwoodbd5ddf02009-07-29 21:37:14 -07001816
1817 /**
Christopher Tate06efb532012-08-24 15:29:27 -07001818 * @deprecated Use {@link android.provider.Settings.Global#WIFI_SLEEP_POLICY} instead
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001819 */
Christopher Tate06efb532012-08-24 15:29:27 -07001820 @Deprecated
1821 public static final String WIFI_SLEEP_POLICY = Global.WIFI_SLEEP_POLICY;
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001822
1823 /**
Christopher Tate06efb532012-08-24 15:29:27 -07001824 * @deprecated Use {@link android.provider.Settings.Global#WIFI_SLEEP_POLICY_DEFAULT} instead
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001825 */
Christopher Tate06efb532012-08-24 15:29:27 -07001826 @Deprecated
1827 public static final int WIFI_SLEEP_POLICY_DEFAULT = Global.WIFI_SLEEP_POLICY_DEFAULT;
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001828
1829 /**
Christopher Tate06efb532012-08-24 15:29:27 -07001830 * @deprecated Use {@link android.provider.Settings.Global#WIFI_SLEEP_POLICY_NEVER_WHILE_PLUGGED} instead
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001831 */
Christopher Tate06efb532012-08-24 15:29:27 -07001832 @Deprecated
1833 public static final int WIFI_SLEEP_POLICY_NEVER_WHILE_PLUGGED =
1834 Global.WIFI_SLEEP_POLICY_NEVER_WHILE_PLUGGED;
Jaikumar Ganesh9bfbfbd2009-05-15 12:05:56 -07001835
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001836 /**
Christopher Tate06efb532012-08-24 15:29:27 -07001837 * @deprecated Use {@link android.provider.Settings.Global#WIFI_SLEEP_POLICY_NEVER} instead
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001838 */
Christopher Tate06efb532012-08-24 15:29:27 -07001839 @Deprecated
1840 public static final int WIFI_SLEEP_POLICY_NEVER = Global.WIFI_SLEEP_POLICY_NEVER;
Jaikumar Ganesh9bfbfbd2009-05-15 12:05:56 -07001841
Eric Laurentbc0fab1f2012-09-19 11:24:41 -07001842 /**
1843 * @deprecated Use {@link android.provider.Settings.Global#MODE_RINGER} instead
1844 */
1845 @Deprecated
1846 public static final String MODE_RINGER = Global.MODE_RINGER;
1847
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001848 /**
1849 * Whether to use static IP and other static network attributes.
1850 * <p>
1851 * Set to 1 for true and 0 for false.
Jeff Sharkey625239a2012-09-26 22:03:49 -07001852 *
1853 * @deprecated Use {@link WifiManager} instead
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001854 */
Jeff Sharkey625239a2012-09-26 22:03:49 -07001855 @Deprecated
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001856 public static final String WIFI_USE_STATIC_IP = "wifi_use_static_ip";
1857
1858 /**
1859 * The static IP address.
1860 * <p>
1861 * Example: "192.168.1.51"
Jeff Sharkey625239a2012-09-26 22:03:49 -07001862 *
1863 * @deprecated Use {@link WifiManager} instead
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001864 */
Jeff Sharkey625239a2012-09-26 22:03:49 -07001865 @Deprecated
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001866 public static final String WIFI_STATIC_IP = "wifi_static_ip";
1867
1868 /**
1869 * If using static IP, the gateway's IP address.
1870 * <p>
1871 * Example: "192.168.1.1"
Jeff Sharkey625239a2012-09-26 22:03:49 -07001872 *
1873 * @deprecated Use {@link WifiManager} instead
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001874 */
Jeff Sharkey625239a2012-09-26 22:03:49 -07001875 @Deprecated
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001876 public static final String WIFI_STATIC_GATEWAY = "wifi_static_gateway";
1877
1878 /**
1879 * If using static IP, the net mask.
1880 * <p>
1881 * Example: "255.255.255.0"
Jeff Sharkey625239a2012-09-26 22:03:49 -07001882 *
1883 * @deprecated Use {@link WifiManager} instead
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001884 */
Jeff Sharkey625239a2012-09-26 22:03:49 -07001885 @Deprecated
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001886 public static final String WIFI_STATIC_NETMASK = "wifi_static_netmask";
1887
1888 /**
1889 * If using static IP, the primary DNS's IP address.
1890 * <p>
1891 * Example: "192.168.1.1"
Jeff Sharkey625239a2012-09-26 22:03:49 -07001892 *
1893 * @deprecated Use {@link WifiManager} instead
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001894 */
Jeff Sharkey625239a2012-09-26 22:03:49 -07001895 @Deprecated
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001896 public static final String WIFI_STATIC_DNS1 = "wifi_static_dns1";
1897
1898 /**
1899 * If using static IP, the secondary DNS's IP address.
1900 * <p>
1901 * Example: "192.168.1.2"
Jeff Sharkey625239a2012-09-26 22:03:49 -07001902 *
1903 * @deprecated Use {@link WifiManager} instead
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001904 */
Jeff Sharkey625239a2012-09-26 22:03:49 -07001905 @Deprecated
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001906 public static final String WIFI_STATIC_DNS2 = "wifi_static_dns2";
1907
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001908
1909 /**
1910 * Determines whether remote devices may discover and/or connect to
1911 * this device.
1912 * <P>Type: INT</P>
1913 * 2 -- discoverable and connectable
1914 * 1 -- connectable but not discoverable
1915 * 0 -- neither connectable nor discoverable
1916 */
1917 public static final String BLUETOOTH_DISCOVERABILITY =
1918 "bluetooth_discoverability";
1919
1920 /**
1921 * Bluetooth discoverability timeout. If this value is nonzero, then
1922 * Bluetooth becomes discoverable for a certain number of seconds,
1923 * after which is becomes simply connectable. The value is in seconds.
1924 */
1925 public static final String BLUETOOTH_DISCOVERABILITY_TIMEOUT =
1926 "bluetooth_discoverability_timeout";
1927
1928 /**
Amith Yamasani156c4352010-03-05 17:10:03 -08001929 * @deprecated Use {@link android.provider.Settings.Secure#LOCK_PATTERN_ENABLED}
1930 * instead
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001931 */
Amith Yamasani156c4352010-03-05 17:10:03 -08001932 @Deprecated
1933 public static final String LOCK_PATTERN_ENABLED = Secure.LOCK_PATTERN_ENABLED;
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001934
1935 /**
Amith Yamasani156c4352010-03-05 17:10:03 -08001936 * @deprecated Use {@link android.provider.Settings.Secure#LOCK_PATTERN_VISIBLE}
1937 * instead
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001938 */
Amith Yamasani156c4352010-03-05 17:10:03 -08001939 @Deprecated
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001940 public static final String LOCK_PATTERN_VISIBLE = "lock_pattern_visible_pattern";
1941
1942 /**
Jaikumar Ganesh545e6702010-06-04 10:23:03 -07001943 * @deprecated Use
Amith Yamasani156c4352010-03-05 17:10:03 -08001944 * {@link android.provider.Settings.Secure#LOCK_PATTERN_TACTILE_FEEDBACK_ENABLED}
1945 * instead
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001946 */
Amith Yamasani156c4352010-03-05 17:10:03 -08001947 @Deprecated
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001948 public static final String LOCK_PATTERN_TACTILE_FEEDBACK_ENABLED =
1949 "lock_pattern_tactile_feedback_enabled";
1950
1951
1952 /**
1953 * A formatted string of the next alarm that is set, or the empty string
1954 * if there is no alarm set.
Adrian Roosc42a1e12014-07-07 23:35:53 +02001955 *
1956 * @deprecated Use {@link android.app.AlarmManager#getNextAlarmClock()}.
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001957 */
Adrian Roosc42a1e12014-07-07 23:35:53 +02001958 @Deprecated
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001959 public static final String NEXT_ALARM_FORMATTED = "next_alarm_formatted";
1960
1961 /**
1962 * Scaling factor for fonts, float.
1963 */
1964 public static final String FONT_SCALE = "font_scale";
1965
1966 /**
1967 * Name of an application package to be debugged.
Jeff Sharkey6e2bee72012-10-01 13:39:08 -07001968 *
1969 * @deprecated Use {@link Global#DEBUG_APP} instead
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001970 */
Jeff Sharkey6e2bee72012-10-01 13:39:08 -07001971 @Deprecated
1972 public static final String DEBUG_APP = Global.DEBUG_APP;
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001973
1974 /**
1975 * If 1, when launching DEBUG_APP it will wait for the debugger before
1976 * starting user code. If 0, it will run normally.
Jeff Sharkey6e2bee72012-10-01 13:39:08 -07001977 *
1978 * @deprecated Use {@link Global#WAIT_FOR_DEBUGGER} instead
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001979 */
Jeff Sharkey6e2bee72012-10-01 13:39:08 -07001980 @Deprecated
1981 public static final String WAIT_FOR_DEBUGGER = Global.WAIT_FOR_DEBUGGER;
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001982
1983 /**
1984 * Whether or not to dim the screen. 0=no 1=yes
Jeff Brown96307042012-07-27 15:51:34 -07001985 * @deprecated This setting is no longer used.
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001986 */
Jeff Brown96307042012-07-27 15:51:34 -07001987 @Deprecated
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001988 public static final String DIM_SCREEN = "dim_screen";
1989
1990 /**
1991 * The timeout before the screen turns off.
1992 */
1993 public static final String SCREEN_OFF_TIMEOUT = "screen_off_timeout";
1994
1995 /**
1996 * The screen backlight brightness between 0 and 255.
1997 */
1998 public static final String SCREEN_BRIGHTNESS = "screen_brightness";
1999
2000 /**
Dan Murphy951764b2009-08-27 14:59:03 -05002001 * Control whether to enable automatic brightness mode.
Dan Murphy951764b2009-08-27 14:59:03 -05002002 */
2003 public static final String SCREEN_BRIGHTNESS_MODE = "screen_brightness_mode";
2004
2005 /**
Dianne Hackbornd9ea4682012-01-20 18:36:40 -08002006 * Adjustment to auto-brightness to make it generally more (>0.0 <1.0)
2007 * or less (<0.0 >-1.0) bright.
Dianne Hackborn518a3d82012-05-09 16:30:49 -07002008 * @hide
Dianne Hackbornd9ea4682012-01-20 18:36:40 -08002009 */
2010 public static final String SCREEN_AUTO_BRIGHTNESS_ADJ = "screen_auto_brightness_adj";
2011
2012 /**
Mike Lockwooddc3494e2009-10-14 21:17:09 -07002013 * SCREEN_BRIGHTNESS_MODE value for manual mode.
Mike Lockwooddc3494e2009-10-14 21:17:09 -07002014 */
2015 public static final int SCREEN_BRIGHTNESS_MODE_MANUAL = 0;
2016
2017 /**
Scott Main52bfc242012-02-09 10:09:14 -08002018 * SCREEN_BRIGHTNESS_MODE value for automatic mode.
Mike Lockwooddc3494e2009-10-14 21:17:09 -07002019 */
2020 public static final int SCREEN_BRIGHTNESS_MODE_AUTOMATIC = 1;
2021
2022 /**
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08002023 * Control whether the process CPU usage meter should be shown.
Jeff Sharkey6e2bee72012-10-01 13:39:08 -07002024 *
2025 * @deprecated Use {@link Global#SHOW_PROCESSES} instead
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08002026 */
Jeff Sharkey6e2bee72012-10-01 13:39:08 -07002027 @Deprecated
2028 public static final String SHOW_PROCESSES = Global.SHOW_PROCESSES;
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08002029
2030 /**
2031 * If 1, the activity manager will aggressively finish activities and
2032 * processes as soon as they are no longer needed. If 0, the normal
2033 * extended lifetime is used.
Jeff Sharkey6e2bee72012-10-01 13:39:08 -07002034 *
2035 * @deprecated Use {@link Global#ALWAYS_FINISH_ACTIVITIES} instead
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08002036 */
Jeff Sharkey6e2bee72012-10-01 13:39:08 -07002037 @Deprecated
2038 public static final String ALWAYS_FINISH_ACTIVITIES = Global.ALWAYS_FINISH_ACTIVITIES;
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08002039
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08002040 /**
2041 * Determines which streams are affected by ringer mode changes. The
2042 * stream type's bit should be set to 1 if it should be muted when going
2043 * into an inaudible ringer mode.
2044 */
2045 public static final String MODE_RINGER_STREAMS_AFFECTED = "mode_ringer_streams_affected";
2046
2047 /**
2048 * Determines which streams are affected by mute. The
2049 * stream type's bit should be set to 1 if it should be muted when a mute request
2050 * is received.
2051 */
2052 public static final String MUTE_STREAMS_AFFECTED = "mute_streams_affected";
2053
2054 /**
2055 * Whether vibrate is on for different events. This is used internally,
2056 * changing this value will not change the vibrate. See AudioManager.
2057 */
2058 public static final String VIBRATE_ON = "vibrate_on";
2059
2060 /**
Jeff Brown7f6c2312012-04-13 20:38:38 -07002061 * If 1, redirects the system vibrator to all currently attached input devices
2062 * that support vibration. If there are no such input devices, then the system
2063 * vibrator is used instead.
2064 * If 0, does not register the system vibrator.
2065 *
2066 * This setting is mainly intended to provide a compatibility mechanism for
2067 * applications that only know about the system vibrator and do not use the
2068 * input device vibrator API.
2069 *
2070 * @hide
2071 */
2072 public static final String VIBRATE_INPUT_DEVICES = "vibrate_input_devices";
2073
2074 /**
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08002075 * Ringer volume. This is used internally, changing this value will not
2076 * change the volume. See AudioManager.
2077 */
2078 public static final String VOLUME_RING = "volume_ring";
2079
2080 /**
2081 * System/notifications volume. This is used internally, changing this
2082 * value will not change the volume. See AudioManager.
2083 */
2084 public static final String VOLUME_SYSTEM = "volume_system";
2085
2086 /**
2087 * Voice call volume. This is used internally, changing this value will
2088 * not change the volume. See AudioManager.
2089 */
2090 public static final String VOLUME_VOICE = "volume_voice";
2091
2092 /**
2093 * Music/media/gaming volume. This is used internally, changing this
2094 * value will not change the volume. See AudioManager.
2095 */
2096 public static final String VOLUME_MUSIC = "volume_music";
2097
2098 /**
2099 * Alarm volume. This is used internally, changing this
2100 * value will not change the volume. See AudioManager.
2101 */
2102 public static final String VOLUME_ALARM = "volume_alarm";
2103
2104 /**
2105 * Notification volume. This is used internally, changing this
2106 * value will not change the volume. See AudioManager.
2107 */
2108 public static final String VOLUME_NOTIFICATION = "volume_notification";
2109
2110 /**
Eric Laurent484d2882009-12-08 09:05:45 -08002111 * Bluetooth Headset volume. This is used internally, changing this value will
2112 * not change the volume. See AudioManager.
2113 */
2114 public static final String VOLUME_BLUETOOTH_SCO = "volume_bluetooth_sco";
2115
2116 /**
Mike Lockwood8517e462011-10-25 14:47:19 -04002117 * Master volume (float in the range 0.0f to 1.0f).
2118 * @hide
2119 */
2120 public static final String VOLUME_MASTER = "volume_master";
2121
2122 /**
Justin Koh57978ed2012-04-03 17:37:58 -07002123 * Master volume mute (int 1 = mute, 0 = not muted).
2124 *
2125 * @hide
2126 */
2127 public static final String VOLUME_MASTER_MUTE = "volume_master_mute";
2128
2129 /**
Julia Reynoldsb53453f2014-08-22 11:42:43 -04002130 * Microphone mute (int 1 = mute, 0 = not muted).
2131 *
2132 * @hide
2133 */
2134 public static final String MICROPHONE_MUTE = "microphone_mute";
2135
2136 /**
Justin Koh57978ed2012-04-03 17:37:58 -07002137 * Whether the notifications should use the ring volume (value of 1) or
2138 * a separate notification volume (value of 0). In most cases, users
2139 * will have this enabled so the notification and ringer volumes will be
2140 * the same. However, power users can disable this and use the separate
2141 * notification volume control.
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08002142 * <p>
Justin Koh57978ed2012-04-03 17:37:58 -07002143 * Note: This is a one-off setting that will be removed in the future
2144 * when there is profile support. For this reason, it is kept hidden
2145 * from the public APIs.
Jaikumar Ganesh9bfbfbd2009-05-15 12:05:56 -07002146 *
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08002147 * @hide
Amith Yamasani42722bf2011-07-22 10:34:27 -07002148 * @deprecated
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08002149 */
Gilles Debunnee90bed12011-08-30 14:28:27 -07002150 @Deprecated
Jaikumar Ganesh9bfbfbd2009-05-15 12:05:56 -07002151 public static final String NOTIFICATIONS_USE_RING_VOLUME =
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08002152 "notifications_use_ring_volume";
Jaikumar Ganesh9bfbfbd2009-05-15 12:05:56 -07002153
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08002154 /**
Daniel Sandler6329bf72010-02-26 15:17:44 -05002155 * Whether silent mode should allow vibration feedback. This is used
2156 * internally in AudioService and the Sound settings activity to
2157 * coordinate decoupling of vibrate and silent modes. This setting
2158 * will likely be removed in a future release with support for
2159 * audio/vibe feedback profiles.
2160 *
Eric Laurentbffc3d12012-05-07 17:43:49 -07002161 * Not used anymore. On devices with vibrator, the user explicitly selects
2162 * silent or vibrate mode.
2163 * Kept for use by legacy database upgrade code in DatabaseHelper.
Daniel Sandler6329bf72010-02-26 15:17:44 -05002164 * @hide
2165 */
2166 public static final String VIBRATE_IN_SILENT = "vibrate_in_silent";
2167
2168 /**
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08002169 * The mapping of stream type (integer) to its setting.
2170 */
2171 public static final String[] VOLUME_SETTINGS = {
2172 VOLUME_VOICE, VOLUME_SYSTEM, VOLUME_RING, VOLUME_MUSIC,
Eric Laurent484d2882009-12-08 09:05:45 -08002173 VOLUME_ALARM, VOLUME_NOTIFICATION, VOLUME_BLUETOOTH_SCO
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08002174 };
2175
2176 /**
2177 * Appended to various volume related settings to record the previous
2178 * values before they the settings were affected by a silent/vibrate
2179 * ringer mode change.
2180 */
2181 public static final String APPEND_FOR_LAST_AUDIBLE = "_last_audible";
2182
2183 /**
2184 * Persistent store for the system-wide default ringtone URI.
2185 * <p>
2186 * If you need to play the default ringtone at any given time, it is recommended
2187 * you give {@link #DEFAULT_RINGTONE_URI} to the media player. It will resolve
2188 * to the set default ringtone at the time of playing.
2189 *
2190 * @see #DEFAULT_RINGTONE_URI
2191 */
2192 public static final String RINGTONE = "ringtone";
2193
2194 /**
2195 * A {@link Uri} that will point to the current default ringtone at any
2196 * given time.
2197 * <p>
2198 * If the current default ringtone is in the DRM provider and the caller
2199 * does not have permission, the exception will be a
2200 * FileNotFoundException.
2201 */
2202 public static final Uri DEFAULT_RINGTONE_URI = getUriFor(RINGTONE);
2203
2204 /**
2205 * Persistent store for the system-wide default notification sound.
2206 *
2207 * @see #RINGTONE
2208 * @see #DEFAULT_NOTIFICATION_URI
2209 */
2210 public static final String NOTIFICATION_SOUND = "notification_sound";
2211
2212 /**
2213 * A {@link Uri} that will point to the current default notification
2214 * sound at any given time.
2215 *
2216 * @see #DEFAULT_RINGTONE_URI
2217 */
2218 public static final Uri DEFAULT_NOTIFICATION_URI = getUriFor(NOTIFICATION_SOUND);
2219
2220 /**
Patrick Scott3156bb002009-04-13 09:57:38 -07002221 * Persistent store for the system-wide default alarm alert.
2222 *
2223 * @see #RINGTONE
2224 * @see #DEFAULT_ALARM_ALERT_URI
2225 */
2226 public static final String ALARM_ALERT = "alarm_alert";
2227
2228 /**
2229 * A {@link Uri} that will point to the current default alarm alert at
2230 * any given time.
2231 *
2232 * @see #DEFAULT_ALARM_ALERT_URI
2233 */
2234 public static final Uri DEFAULT_ALARM_ALERT_URI = getUriFor(ALARM_ALERT);
2235
2236 /**
Jean-Michel Trivid589fea2011-04-15 11:28:10 -07002237 * Persistent store for the system default media button event receiver.
2238 *
2239 * @hide
2240 */
2241 public static final String MEDIA_BUTTON_RECEIVER = "media_button_receiver";
2242
2243 /**
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08002244 * Setting to enable Auto Replace (AutoText) in text editors. 1 = On, 0 = Off
2245 */
2246 public static final String TEXT_AUTO_REPLACE = "auto_replace";
2247
2248 /**
2249 * Setting to enable Auto Caps in text editors. 1 = On, 0 = Off
2250 */
2251 public static final String TEXT_AUTO_CAPS = "auto_caps";
2252
2253 /**
2254 * Setting to enable Auto Punctuate in text editors. 1 = On, 0 = Off. This
2255 * feature converts two spaces to a "." and space.
2256 */
2257 public static final String TEXT_AUTO_PUNCTUATE = "auto_punctuate";
Jaikumar Ganesh9bfbfbd2009-05-15 12:05:56 -07002258
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08002259 /**
2260 * Setting to showing password characters in text editors. 1 = On, 0 = Off
2261 */
2262 public static final String TEXT_SHOW_PASSWORD = "show_password";
2263
2264 public static final String SHOW_GTALK_SERVICE_STATUS =
2265 "SHOW_GTALK_SERVICE_STATUS";
2266
2267 /**
2268 * Name of activity to use for wallpaper on the home screen.
Jeff Sharkey6e2bee72012-10-01 13:39:08 -07002269 *
2270 * @deprecated Use {@link WallpaperManager} instead.
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08002271 */
Jeff Sharkey6e2bee72012-10-01 13:39:08 -07002272 @Deprecated
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08002273 public static final String WALLPAPER_ACTIVITY = "wallpaper_activity";
2274
2275 /**
Christopher Tate06efb532012-08-24 15:29:27 -07002276 * @deprecated Use {@link android.provider.Settings.Global#AUTO_TIME}
2277 * instead
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08002278 */
Christopher Tate06efb532012-08-24 15:29:27 -07002279 @Deprecated
2280 public static final String AUTO_TIME = Global.AUTO_TIME;
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08002281
2282 /**
Christopher Tate06efb532012-08-24 15:29:27 -07002283 * @deprecated Use {@link android.provider.Settings.Global#AUTO_TIME_ZONE}
2284 * instead
Amith Yamasaniad450be2010-09-16 16:47:00 -07002285 */
Christopher Tate06efb532012-08-24 15:29:27 -07002286 @Deprecated
2287 public static final String AUTO_TIME_ZONE = Global.AUTO_TIME_ZONE;
Amith Yamasaniad450be2010-09-16 16:47:00 -07002288
2289 /**
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08002290 * Display times as 12 or 24 hours
2291 * 12
2292 * 24
2293 */
2294 public static final String TIME_12_24 = "time_12_24";
2295
2296 /**
2297 * Date format string
2298 * mm/dd/yyyy
2299 * dd/mm/yyyy
2300 * yyyy/mm/dd
2301 */
2302 public static final String DATE_FORMAT = "date_format";
2303
2304 /**
2305 * Whether the setup wizard has been run before (on first boot), or if
2306 * it still needs to be run.
2307 *
2308 * nonzero = it has been run in the past
2309 * 0 = it has not been run in the past
2310 */
2311 public static final String SETUP_WIZARD_HAS_RUN = "setup_wizard_has_run";
2312
2313 /**
2314 * Scaling factor for normal window animations. Setting to 0 will disable window
2315 * animations.
Jeff Sharkey6e2bee72012-10-01 13:39:08 -07002316 *
2317 * @deprecated Use {@link Global#WINDOW_ANIMATION_SCALE} instead
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08002318 */
Jeff Sharkey6e2bee72012-10-01 13:39:08 -07002319 @Deprecated
2320 public static final String WINDOW_ANIMATION_SCALE = Global.WINDOW_ANIMATION_SCALE;
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08002321
2322 /**
2323 * Scaling factor for activity transition animations. Setting to 0 will disable window
2324 * animations.
Jeff Sharkey6e2bee72012-10-01 13:39:08 -07002325 *
2326 * @deprecated Use {@link Global#TRANSITION_ANIMATION_SCALE} instead
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08002327 */
Jeff Sharkey6e2bee72012-10-01 13:39:08 -07002328 @Deprecated
2329 public static final String TRANSITION_ANIMATION_SCALE = Global.TRANSITION_ANIMATION_SCALE;
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08002330
2331 /**
Chet Haasec38fa1f2012-02-01 16:37:46 -08002332 * Scaling factor for Animator-based animations. This affects both the start delay and
2333 * duration of all such animations. Setting to 0 will cause animations to end immediately.
2334 * The default value is 1.
Jeff Sharkey6e2bee72012-10-01 13:39:08 -07002335 *
2336 * @deprecated Use {@link Global#ANIMATOR_DURATION_SCALE} instead
Chet Haasec38fa1f2012-02-01 16:37:46 -08002337 */
Jeff Sharkey6e2bee72012-10-01 13:39:08 -07002338 @Deprecated
2339 public static final String ANIMATOR_DURATION_SCALE = Global.ANIMATOR_DURATION_SCALE;
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08002340
2341 /**
2342 * Control whether the accelerometer will be used to change screen
2343 * orientation. If 0, it will not be used unless explicitly requested
2344 * by the application; if 1, it will be used by default unless explicitly
2345 * disabled by the application.
2346 */
2347 public static final String ACCELEROMETER_ROTATION = "accelerometer_rotation";
2348
2349 /**
Daniel Sandlerb73617d2010-08-17 00:41:00 -04002350 * Default screen rotation when no other policy applies.
2351 * When {@link #ACCELEROMETER_ROTATION} is zero and no on-screen Activity expresses a
2352 * preference, this rotation value will be used. Must be one of the
Brian Muramatsue1d46982010-12-06 17:34:20 -08002353 * {@link android.view.Surface#ROTATION_0 Surface rotation constants}.
Daniel Sandlerb73617d2010-08-17 00:41:00 -04002354 *
Dianne Hackborn16ec0802014-08-15 18:32:33 -07002355 * @see android.view.Display#getRotation
Daniel Sandlerb73617d2010-08-17 00:41:00 -04002356 */
2357 public static final String USER_ROTATION = "user_rotation";
2358
2359 /**
Jeff Brown207673cd2012-06-05 17:47:11 -07002360 * Control whether the rotation lock toggle in the System UI should be hidden.
2361 * Typically this is done for accessibility purposes to make it harder for
2362 * the user to accidentally toggle the rotation lock while the display rotation
2363 * has been locked for accessibility.
2364 *
2365 * If 0, then rotation lock toggle is not hidden for accessibility (although it may be
2366 * unavailable for other reasons). If 1, then the rotation lock toggle is hidden.
2367 *
2368 * @hide
2369 */
2370 public static final String HIDE_ROTATION_LOCK_TOGGLE_FOR_ACCESSIBILITY =
2371 "hide_rotation_lock_toggle_for_accessibility";
2372
2373 /**
Daisuke Miyakawa3c60eeb2012-05-08 12:08:25 -07002374 * Whether the phone vibrates when it is ringing due to an incoming call. This will
2375 * be used by Phone and Setting apps; it shouldn't affect other apps.
2376 * The value is boolean (1 or 0).
2377 *
2378 * Note: this is not same as "vibrate on ring", which had been available until ICS.
2379 * It was about AudioManager's setting and thus affected all the applications which
2380 * relied on the setting, while this is purely about the vibration setting for incoming
2381 * calls.
2382 *
2383 * @hide
2384 */
2385 public static final String VIBRATE_WHEN_RINGING = "vibrate_when_ringing";
2386
2387 /**
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08002388 * Whether the audible DTMF tones are played by the dialer when dialing. The value is
2389 * boolean (1 or 0).
2390 */
2391 public static final String DTMF_TONE_WHEN_DIALING = "dtmf_tone";
2392
2393 /**
David Kraused0f67152009-06-13 18:01:13 -05002394 * CDMA only settings
2395 * DTMF tone type played by the dialer when dialing.
2396 * 0 = Normal
2397 * 1 = Long
2398 * @hide
2399 */
2400 public static final String DTMF_TONE_TYPE_WHEN_DIALING = "dtmf_tone_type";
2401
2402 /**
David Kraused0f67152009-06-13 18:01:13 -05002403 * Whether the hearing aid is enabled. The value is
2404 * boolean (1 or 0).
2405 * @hide
2406 */
2407 public static final String HEARING_AID = "hearing_aid";
2408
2409 /**
2410 * CDMA only settings
2411 * TTY Mode
2412 * 0 = OFF
2413 * 1 = FULL
2414 * 2 = VCO
2415 * 3 = HCO
2416 * @hide
2417 */
2418 public static final String TTY_MODE = "tty_mode";
2419
2420 /**
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08002421 * Whether the sounds effects (key clicks, lid open ...) are enabled. The value is
2422 * boolean (1 or 0).
2423 */
2424 public static final String SOUND_EFFECTS_ENABLED = "sound_effects_enabled";
Jaikumar Ganesh9bfbfbd2009-05-15 12:05:56 -07002425
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08002426 /**
2427 * Whether the haptic feedback (long presses, ...) are enabled. The value is
2428 * boolean (1 or 0).
2429 */
2430 public static final String HAPTIC_FEEDBACK_ENABLED = "haptic_feedback_enabled";
Sanjay Jeyakumar21bf2412009-07-09 13:31:48 -07002431
Mike LeBeau48603e72009-06-05 00:27:00 +01002432 /**
Bjorn Bringert24abb662010-09-21 12:21:18 +01002433 * @deprecated Each application that shows web suggestions should have its own
2434 * setting for this.
Mike LeBeau48603e72009-06-05 00:27:00 +01002435 */
Bjorn Bringert24abb662010-09-21 12:21:18 +01002436 @Deprecated
Mike LeBeau48603e72009-06-05 00:27:00 +01002437 public static final String SHOW_WEB_SUGGESTIONS = "show_web_suggestions";
Jaikumar Ganesh9bfbfbd2009-05-15 12:05:56 -07002438
-b master501eec92009-07-06 13:53:11 -07002439 /**
Amith Yamasaniae3ed702009-12-01 19:02:05 -08002440 * Whether the notification LED should repeatedly flash when a notification is
2441 * pending. The value is boolean (1 or 0).
2442 * @hide
2443 */
2444 public static final String NOTIFICATION_LIGHT_PULSE = "notification_light_pulse";
2445
2446 /**
Dianne Hackborn90d2db32010-02-11 22:19:06 -08002447 * Show pointer location on screen?
2448 * 0 = no
2449 * 1 = yes
2450 * @hide
2451 */
2452 public static final String POINTER_LOCATION = "pointer_location";
2453
2454 /**
Jeff Browndaf4a122011-08-26 17:14:14 -07002455 * Show touch positions on screen?
2456 * 0 = no
2457 * 1 = yes
2458 * @hide
2459 */
2460 public static final String SHOW_TOUCHES = "show_touches";
2461
2462 /**
Dianne Hackborn16ec0802014-08-15 18:32:33 -07002463 * Log raw orientation data from
2464 * {@link com.android.internal.policy.impl.WindowOrientationListener} for use with the
Jeff Brown4519f072011-01-23 13:16:01 -08002465 * orientationplot.py tool.
2466 * 0 = no
2467 * 1 = yes
2468 * @hide
2469 */
2470 public static final String WINDOW_ORIENTATION_LISTENER_LOG =
2471 "window_orientation_listener_log";
2472
2473 /**
Christopher Tate06efb532012-08-24 15:29:27 -07002474 * @deprecated Use {@link android.provider.Settings.Global#POWER_SOUNDS_ENABLED}
2475 * instead
Daniel Sandler0e9d2af2010-01-25 11:33:03 -05002476 * @hide
2477 */
Christopher Tate06efb532012-08-24 15:29:27 -07002478 @Deprecated
2479 public static final String POWER_SOUNDS_ENABLED = Global.POWER_SOUNDS_ENABLED;
Daniel Sandler0e9d2af2010-01-25 11:33:03 -05002480
2481 /**
Christopher Tate06efb532012-08-24 15:29:27 -07002482 * @deprecated Use {@link android.provider.Settings.Global#DOCK_SOUNDS_ENABLED}
2483 * instead
Daniel Sandler0e9d2af2010-01-25 11:33:03 -05002484 * @hide
2485 */
Christopher Tate06efb532012-08-24 15:29:27 -07002486 @Deprecated
2487 public static final String DOCK_SOUNDS_ENABLED = Global.DOCK_SOUNDS_ENABLED;
Daniel Sandler0e9d2af2010-01-25 11:33:03 -05002488
2489 /**
2490 * Whether to play sounds when the keyguard is shown and dismissed.
2491 * @hide
2492 */
2493 public static final String LOCKSCREEN_SOUNDS_ENABLED = "lockscreen_sounds_enabled";
2494
2495 /**
Mike Lockwood7bef7392011-10-20 16:51:53 -04002496 * Whether the lockscreen should be completely disabled.
2497 * @hide
2498 */
2499 public static final String LOCKSCREEN_DISABLED = "lockscreen.disabled";
2500
2501 /**
Christopher Tate06efb532012-08-24 15:29:27 -07002502 * @deprecated Use {@link android.provider.Settings.Global#LOW_BATTERY_SOUND}
2503 * instead
Daniel Sandler0e9d2af2010-01-25 11:33:03 -05002504 * @hide
2505 */
Christopher Tate06efb532012-08-24 15:29:27 -07002506 @Deprecated
2507 public static final String LOW_BATTERY_SOUND = Global.LOW_BATTERY_SOUND;
Daniel Sandler0e9d2af2010-01-25 11:33:03 -05002508
2509 /**
Christopher Tate06efb532012-08-24 15:29:27 -07002510 * @deprecated Use {@link android.provider.Settings.Global#DESK_DOCK_SOUND}
2511 * instead
Daniel Sandler0e9d2af2010-01-25 11:33:03 -05002512 * @hide
2513 */
Christopher Tate06efb532012-08-24 15:29:27 -07002514 @Deprecated
2515 public static final String DESK_DOCK_SOUND = Global.DESK_DOCK_SOUND;
Daniel Sandler0e9d2af2010-01-25 11:33:03 -05002516
2517 /**
Christopher Tate06efb532012-08-24 15:29:27 -07002518 * @deprecated Use {@link android.provider.Settings.Global#DESK_UNDOCK_SOUND}
2519 * instead
Daniel Sandler0e9d2af2010-01-25 11:33:03 -05002520 * @hide
2521 */
Christopher Tate06efb532012-08-24 15:29:27 -07002522 @Deprecated
2523 public static final String DESK_UNDOCK_SOUND = Global.DESK_UNDOCK_SOUND;
Daniel Sandler0e9d2af2010-01-25 11:33:03 -05002524
2525 /**
Christopher Tate06efb532012-08-24 15:29:27 -07002526 * @deprecated Use {@link android.provider.Settings.Global#CAR_DOCK_SOUND}
2527 * instead
Daniel Sandler0e9d2af2010-01-25 11:33:03 -05002528 * @hide
2529 */
Christopher Tate06efb532012-08-24 15:29:27 -07002530 @Deprecated
2531 public static final String CAR_DOCK_SOUND = Global.CAR_DOCK_SOUND;
Daniel Sandler0e9d2af2010-01-25 11:33:03 -05002532
2533 /**
Christopher Tate06efb532012-08-24 15:29:27 -07002534 * @deprecated Use {@link android.provider.Settings.Global#CAR_UNDOCK_SOUND}
2535 * instead
Daniel Sandler0e9d2af2010-01-25 11:33:03 -05002536 * @hide
2537 */
Christopher Tate06efb532012-08-24 15:29:27 -07002538 @Deprecated
2539 public static final String CAR_UNDOCK_SOUND = Global.CAR_UNDOCK_SOUND;
Daniel Sandler0e9d2af2010-01-25 11:33:03 -05002540
2541 /**
Christopher Tate06efb532012-08-24 15:29:27 -07002542 * @deprecated Use {@link android.provider.Settings.Global#LOCK_SOUND}
2543 * instead
Daniel Sandler0e9d2af2010-01-25 11:33:03 -05002544 * @hide
2545 */
Christopher Tate06efb532012-08-24 15:29:27 -07002546 @Deprecated
2547 public static final String LOCK_SOUND = Global.LOCK_SOUND;
Daniel Sandler0e9d2af2010-01-25 11:33:03 -05002548
2549 /**
Christopher Tate06efb532012-08-24 15:29:27 -07002550 * @deprecated Use {@link android.provider.Settings.Global#UNLOCK_SOUND}
2551 * instead
Daniel Sandler0e9d2af2010-01-25 11:33:03 -05002552 * @hide
2553 */
Christopher Tate06efb532012-08-24 15:29:27 -07002554 @Deprecated
2555 public static final String UNLOCK_SOUND = Global.UNLOCK_SOUND;
Daniel Sandler0e9d2af2010-01-25 11:33:03 -05002556
2557 /**
Chung-yih Wang042e9bd2010-08-31 17:43:39 +08002558 * Receive incoming SIP calls?
2559 * 0 = no
2560 * 1 = yes
2561 * @hide
2562 */
2563 public static final String SIP_RECEIVE_CALLS = "sip_receive_calls";
2564
2565 /**
2566 * Call Preference String.
2567 * "SIP_ALWAYS" : Always use SIP with network access
2568 * "SIP_ADDRESS_ONLY" : Only if destination is a SIP address
Chung-yih Wang042e9bd2010-08-31 17:43:39 +08002569 * @hide
2570 */
2571 public static final String SIP_CALL_OPTIONS = "sip_call_options";
2572
2573 /**
2574 * One of the sip call options: Always use SIP with network access.
2575 * @hide
2576 */
2577 public static final String SIP_ALWAYS = "SIP_ALWAYS";
2578
2579 /**
2580 * One of the sip call options: Only if destination is a SIP address.
2581 * @hide
2582 */
2583 public static final String SIP_ADDRESS_ONLY = "SIP_ADDRESS_ONLY";
2584
2585 /**
Tyler Gunn2c830a22014-09-02 08:39:35 -07002586 * @deprecated Use SIP_ALWAYS or SIP_ADDRESS_ONLY instead. Formerly used to indicate that
2587 * the user should be prompted each time a call is made whether it should be placed using
2588 * SIP. The {@link com.android.providers.settings.DatabaseHelper} replaces this with
2589 * SIP_ADDRESS_ONLY.
Chung-yih Wang042e9bd2010-08-31 17:43:39 +08002590 * @hide
2591 */
Tyler Gunn2c830a22014-09-02 08:39:35 -07002592 @Deprecated
Chung-yih Wang042e9bd2010-08-31 17:43:39 +08002593 public static final String SIP_ASK_ME_EACH_TIME = "SIP_ASK_ME_EACH_TIME";
2594
2595 /**
Jeff Brown1a84fd12011-06-02 01:26:32 -07002596 * Pointer speed setting.
2597 * This is an integer value in a range between -7 and +7, so there are 15 possible values.
2598 * -7 = slowest
2599 * 0 = default speed
2600 * +7 = fastest
2601 * @hide
2602 */
2603 public static final String POINTER_SPEED = "pointer_speed";
2604
2605 /**
Jason Monk56e09b42014-07-18 10:29:14 -04002606 * Whether lock-to-app will be triggered by long-press on recents.
2607 * @hide
2608 */
2609 public static final String LOCK_TO_APP_ENABLED = "lock_to_app_enabled";
2610
2611 /**
Jason Monk62515be2014-05-21 16:06:19 -04002612 * Whether lock-to-app will lock the keyguard when exiting.
2613 * @hide
2614 */
2615 public static final String LOCK_TO_APP_EXIT_LOCKED = "lock_to_app_exit_locked";
2616
2617 /**
Daniel Sandler2fdb68b2013-10-03 00:12:11 -04002618 * I am the lolrus.
2619 * <p>
2620 * Nonzero values indicate that the user has a bukkit.
2621 * Backward-compatible with <code>PrefGetPreference(prefAllowEasterEggs)</code>.
2622 * @hide
2623 */
2624 public static final String EGG_MODE = "egg_mode";
2625
2626 /**
-b master501eec92009-07-06 13:53:11 -07002627 * Settings to backup. This is here so that it's in the same place as the settings
2628 * keys and easy to update.
Svetoslav Ganova571a582011-09-20 18:32:20 -07002629 *
2630 * NOTE: Settings are backed up and restored in the order they appear
2631 * in this array. If you have one setting depending on another,
2632 * make sure that they are ordered appropriately.
2633 *
-b master501eec92009-07-06 13:53:11 -07002634 * @hide
2635 */
2636 public static final String[] SETTINGS_TO_BACKUP = {
Christopher Tate66488d62012-10-02 11:58:01 -07002637 STAY_ON_WHILE_PLUGGED_IN, // moved to global
-b master501eec92009-07-06 13:53:11 -07002638 WIFI_USE_STATIC_IP,
2639 WIFI_STATIC_IP,
2640 WIFI_STATIC_GATEWAY,
2641 WIFI_STATIC_NETMASK,
2642 WIFI_STATIC_DNS1,
2643 WIFI_STATIC_DNS2,
2644 BLUETOOTH_DISCOVERABILITY,
2645 BLUETOOTH_DISCOVERABILITY_TIMEOUT,
2646 DIM_SCREEN,
2647 SCREEN_OFF_TIMEOUT,
2648 SCREEN_BRIGHTNESS,
Christopher Tate362aca62009-09-25 15:58:03 -07002649 SCREEN_BRIGHTNESS_MODE,
Dianne Hackbornd9ea4682012-01-20 18:36:40 -08002650 SCREEN_AUTO_BRIGHTNESS_ADJ,
Jeff Brown7f6c2312012-04-13 20:38:38 -07002651 VIBRATE_INPUT_DEVICES,
Amith Yamasani8823c0a82009-07-07 14:30:17 -07002652 MODE_RINGER_STREAMS_AFFECTED,
Amith Yamasani8823c0a82009-07-07 14:30:17 -07002653 VOLUME_VOICE,
2654 VOLUME_SYSTEM,
2655 VOLUME_RING,
2656 VOLUME_MUSIC,
2657 VOLUME_ALARM,
2658 VOLUME_NOTIFICATION,
Eric Laurent484d2882009-12-08 09:05:45 -08002659 VOLUME_BLUETOOTH_SCO,
Amith Yamasani8823c0a82009-07-07 14:30:17 -07002660 VOLUME_VOICE + APPEND_FOR_LAST_AUDIBLE,
2661 VOLUME_SYSTEM + APPEND_FOR_LAST_AUDIBLE,
2662 VOLUME_RING + APPEND_FOR_LAST_AUDIBLE,
2663 VOLUME_MUSIC + APPEND_FOR_LAST_AUDIBLE,
2664 VOLUME_ALARM + APPEND_FOR_LAST_AUDIBLE,
2665 VOLUME_NOTIFICATION + APPEND_FOR_LAST_AUDIBLE,
Eric Laurent484d2882009-12-08 09:05:45 -08002666 VOLUME_BLUETOOTH_SCO + APPEND_FOR_LAST_AUDIBLE,
-b master501eec92009-07-06 13:53:11 -07002667 TEXT_AUTO_REPLACE,
2668 TEXT_AUTO_CAPS,
2669 TEXT_AUTO_PUNCTUATE,
2670 TEXT_SHOW_PASSWORD,
Christopher Tate66488d62012-10-02 11:58:01 -07002671 AUTO_TIME, // moved to global
2672 AUTO_TIME_ZONE, // moved to global
-b master501eec92009-07-06 13:53:11 -07002673 TIME_12_24,
2674 DATE_FORMAT,
-b master501eec92009-07-06 13:53:11 -07002675 DTMF_TONE_WHEN_DIALING,
2676 DTMF_TONE_TYPE_WHEN_DIALING,
-b master501eec92009-07-06 13:53:11 -07002677 HEARING_AID,
2678 TTY_MODE,
2679 SOUND_EFFECTS_ENABLED,
2680 HAPTIC_FEEDBACK_ENABLED,
Christopher Tate66488d62012-10-02 11:58:01 -07002681 POWER_SOUNDS_ENABLED, // moved to global
2682 DOCK_SOUNDS_ENABLED, // moved to global
Christopher Tate14c2d792010-02-25 16:49:44 -08002683 LOCKSCREEN_SOUNDS_ENABLED,
Amith Yamasaniae3ed702009-12-01 19:02:05 -08002684 SHOW_WEB_SUGGESTIONS,
Mike Lockwoodeabe8bf2010-08-31 14:35:23 -04002685 NOTIFICATION_LIGHT_PULSE,
Chung-yih Wang042e9bd2010-08-31 17:43:39 +08002686 SIP_CALL_OPTIONS,
Nick Pelly038cabe2010-09-23 16:12:11 -07002687 SIP_RECEIVE_CALLS,
Jeff Brown1a84fd12011-06-02 01:26:32 -07002688 POINTER_SPEED,
Amith Yamasani622bf2222013-09-06 13:54:28 -07002689 VIBRATE_WHEN_RINGING,
2690 RINGTONE,
2691 NOTIFICATION_SOUND
-b master501eec92009-07-06 13:53:11 -07002692 };
2693
Sailesh Nepal1bd78762014-02-11 22:32:21 -08002694 /**
Amith Yamasani4f7e2e32014-08-14 18:49:48 -07002695 * These entries are considered common between the personal and the managed profile,
2696 * since the managed profile doesn't get to change them.
2697 * @hide
2698 */
2699 public static final String[] CLONE_TO_MANAGED_PROFILE = {
2700 DATE_FORMAT,
Kenny Guy64606572014-08-21 16:17:09 +01002701 HAPTIC_FEEDBACK_ENABLED,
2702 SOUND_EFFECTS_ENABLED,
2703 TEXT_SHOW_PASSWORD,
Amith Yamasani4f7e2e32014-08-14 18:49:48 -07002704 TIME_12_24
2705 };
2706
2707 /**
Sailesh Nepal1bd78762014-02-11 22:32:21 -08002708 * When to use Wi-Fi calling
2709 *
2710 * @see android.telephony.TelephonyManager.WifiCallingChoices
2711 * @hide
2712 */
2713 public static final String WHEN_TO_MAKE_WIFI_CALLS = "when_to_make_wifi_calls";
2714
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08002715 // Settings moved to Settings.Secure
2716
2717 /**
Christopher Tate06efb532012-08-24 15:29:27 -07002718 * @deprecated Use {@link android.provider.Settings.Global#ADB_ENABLED}
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08002719 * instead
2720 */
2721 @Deprecated
Christopher Tate06efb532012-08-24 15:29:27 -07002722 public static final String ADB_ENABLED = Global.ADB_ENABLED;
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08002723
2724 /**
2725 * @deprecated Use {@link android.provider.Settings.Secure#ANDROID_ID} instead
2726 */
2727 @Deprecated
2728 public static final String ANDROID_ID = Secure.ANDROID_ID;
2729
2730 /**
Christopher Tate06efb532012-08-24 15:29:27 -07002731 * @deprecated Use {@link android.provider.Settings.Global#BLUETOOTH_ON} instead
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08002732 */
2733 @Deprecated
Christopher Tate06efb532012-08-24 15:29:27 -07002734 public static final String BLUETOOTH_ON = Global.BLUETOOTH_ON;
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08002735
2736 /**
Christopher Tate06efb532012-08-24 15:29:27 -07002737 * @deprecated Use {@link android.provider.Settings.Global#DATA_ROAMING} instead
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08002738 */
2739 @Deprecated
Christopher Tate06efb532012-08-24 15:29:27 -07002740 public static final String DATA_ROAMING = Global.DATA_ROAMING;
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08002741
2742 /**
Christopher Tate06efb532012-08-24 15:29:27 -07002743 * @deprecated Use {@link android.provider.Settings.Global#DEVICE_PROVISIONED} instead
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08002744 */
2745 @Deprecated
Christopher Tate06efb532012-08-24 15:29:27 -07002746 public static final String DEVICE_PROVISIONED = Global.DEVICE_PROVISIONED;
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08002747
2748 /**
Jeff Sharkey625239a2012-09-26 22:03:49 -07002749 * @deprecated Use {@link android.provider.Settings.Global#HTTP_PROXY} instead
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08002750 */
2751 @Deprecated
Jeff Sharkey625239a2012-09-26 22:03:49 -07002752 public static final String HTTP_PROXY = Global.HTTP_PROXY;
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08002753
2754 /**
Christopher Tateaa036a22014-05-19 16:33:27 -07002755 * @deprecated Use {@link android.provider.Settings.Secure#INSTALL_NON_MARKET_APPS} instead
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08002756 */
2757 @Deprecated
Christopher Tateaa036a22014-05-19 16:33:27 -07002758 public static final String INSTALL_NON_MARKET_APPS = Secure.INSTALL_NON_MARKET_APPS;
Jaikumar Ganesh9bfbfbd2009-05-15 12:05:56 -07002759
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08002760 /**
2761 * @deprecated Use {@link android.provider.Settings.Secure#LOCATION_PROVIDERS_ALLOWED}
2762 * instead
2763 */
2764 @Deprecated
2765 public static final String LOCATION_PROVIDERS_ALLOWED = Secure.LOCATION_PROVIDERS_ALLOWED;
2766
2767 /**
2768 * @deprecated Use {@link android.provider.Settings.Secure#LOGGING_ID} instead
2769 */
2770 @Deprecated
2771 public static final String LOGGING_ID = Secure.LOGGING_ID;
Jaikumar Ganesh9bfbfbd2009-05-15 12:05:56 -07002772
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08002773 /**
Christopher Tate06efb532012-08-24 15:29:27 -07002774 * @deprecated Use {@link android.provider.Settings.Global#NETWORK_PREFERENCE} instead
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08002775 */
2776 @Deprecated
Christopher Tate06efb532012-08-24 15:29:27 -07002777 public static final String NETWORK_PREFERENCE = Global.NETWORK_PREFERENCE;
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08002778
2779 /**
2780 * @deprecated Use {@link android.provider.Settings.Secure#PARENTAL_CONTROL_ENABLED}
2781 * instead
2782 */
2783 @Deprecated
2784 public static final String PARENTAL_CONTROL_ENABLED = Secure.PARENTAL_CONTROL_ENABLED;
2785
2786 /**
2787 * @deprecated Use {@link android.provider.Settings.Secure#PARENTAL_CONTROL_LAST_UPDATE}
2788 * instead
2789 */
2790 @Deprecated
2791 public static final String PARENTAL_CONTROL_LAST_UPDATE = Secure.PARENTAL_CONTROL_LAST_UPDATE;
2792
2793 /**
2794 * @deprecated Use {@link android.provider.Settings.Secure#PARENTAL_CONTROL_REDIRECT_URL}
2795 * instead
2796 */
2797 @Deprecated
2798 public static final String PARENTAL_CONTROL_REDIRECT_URL =
2799 Secure.PARENTAL_CONTROL_REDIRECT_URL;
2800
2801 /**
2802 * @deprecated Use {@link android.provider.Settings.Secure#SETTINGS_CLASSNAME} instead
2803 */
2804 @Deprecated
2805 public static final String SETTINGS_CLASSNAME = Secure.SETTINGS_CLASSNAME;
2806
2807 /**
Christopher Tate06efb532012-08-24 15:29:27 -07002808 * @deprecated Use {@link android.provider.Settings.Global#USB_MASS_STORAGE_ENABLED} instead
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08002809 */
2810 @Deprecated
Christopher Tate06efb532012-08-24 15:29:27 -07002811 public static final String USB_MASS_STORAGE_ENABLED = Global.USB_MASS_STORAGE_ENABLED;
Jaikumar Ganesh9bfbfbd2009-05-15 12:05:56 -07002812
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08002813 /**
Christopher Tate06efb532012-08-24 15:29:27 -07002814 * @deprecated Use {@link android.provider.Settings.Global#USE_GOOGLE_MAIL} instead
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08002815 */
2816 @Deprecated
Christopher Tate06efb532012-08-24 15:29:27 -07002817 public static final String USE_GOOGLE_MAIL = Global.USE_GOOGLE_MAIL;
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08002818
Dianne Hackborn4a51c202009-08-21 15:14:02 -07002819 /**
2820 * @deprecated Use
Christopher Tate06efb532012-08-24 15:29:27 -07002821 * {@link android.provider.Settings.Global#WIFI_MAX_DHCP_RETRY_COUNT} instead
Dianne Hackborn4a51c202009-08-21 15:14:02 -07002822 */
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08002823 @Deprecated
Christopher Tate06efb532012-08-24 15:29:27 -07002824 public static final String WIFI_MAX_DHCP_RETRY_COUNT = Global.WIFI_MAX_DHCP_RETRY_COUNT;
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08002825
Dianne Hackborn4a51c202009-08-21 15:14:02 -07002826 /**
2827 * @deprecated Use
Christopher Tate06efb532012-08-24 15:29:27 -07002828 * {@link android.provider.Settings.Global#WIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MS} instead
Dianne Hackborn4a51c202009-08-21 15:14:02 -07002829 */
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08002830 @Deprecated
2831 public static final String WIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MS =
Christopher Tate06efb532012-08-24 15:29:27 -07002832 Global.WIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MS;
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08002833
2834 /**
2835 * @deprecated Use
Christopher Tate06efb532012-08-24 15:29:27 -07002836 * {@link android.provider.Settings.Global#WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON} instead
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08002837 */
2838 @Deprecated
2839 public static final String WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON =
Christopher Tate06efb532012-08-24 15:29:27 -07002840 Global.WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON;
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08002841
2842 /**
2843 * @deprecated Use
Christopher Tate06efb532012-08-24 15:29:27 -07002844 * {@link android.provider.Settings.Global#WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY} instead
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08002845 */
2846 @Deprecated
2847 public static final String WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY =
Christopher Tate06efb532012-08-24 15:29:27 -07002848 Global.WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY;
Jaikumar Ganesh9bfbfbd2009-05-15 12:05:56 -07002849
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08002850 /**
Christopher Tate06efb532012-08-24 15:29:27 -07002851 * @deprecated Use {@link android.provider.Settings.Global#WIFI_NUM_OPEN_NETWORKS_KEPT}
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08002852 * instead
2853 */
2854 @Deprecated
Christopher Tate06efb532012-08-24 15:29:27 -07002855 public static final String WIFI_NUM_OPEN_NETWORKS_KEPT = Global.WIFI_NUM_OPEN_NETWORKS_KEPT;
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08002856
2857 /**
Christopher Tate06efb532012-08-24 15:29:27 -07002858 * @deprecated Use {@link android.provider.Settings.Global#WIFI_ON} instead
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08002859 */
2860 @Deprecated
Christopher Tate06efb532012-08-24 15:29:27 -07002861 public static final String WIFI_ON = Global.WIFI_ON;
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08002862
2863 /**
2864 * @deprecated Use
2865 * {@link android.provider.Settings.Secure#WIFI_WATCHDOG_ACCEPTABLE_PACKET_LOSS_PERCENTAGE}
2866 * instead
2867 */
2868 @Deprecated
2869 public static final String WIFI_WATCHDOG_ACCEPTABLE_PACKET_LOSS_PERCENTAGE =
2870 Secure.WIFI_WATCHDOG_ACCEPTABLE_PACKET_LOSS_PERCENTAGE;
2871
2872 /**
2873 * @deprecated Use {@link android.provider.Settings.Secure#WIFI_WATCHDOG_AP_COUNT} instead
2874 */
2875 @Deprecated
2876 public static final String WIFI_WATCHDOG_AP_COUNT = Secure.WIFI_WATCHDOG_AP_COUNT;
2877
2878 /**
2879 * @deprecated Use
2880 * {@link android.provider.Settings.Secure#WIFI_WATCHDOG_BACKGROUND_CHECK_DELAY_MS} instead
2881 */
2882 @Deprecated
2883 public static final String WIFI_WATCHDOG_BACKGROUND_CHECK_DELAY_MS =
2884 Secure.WIFI_WATCHDOG_BACKGROUND_CHECK_DELAY_MS;
Jaikumar Ganesh9bfbfbd2009-05-15 12:05:56 -07002885
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08002886 /**
2887 * @deprecated Use
2888 * {@link android.provider.Settings.Secure#WIFI_WATCHDOG_BACKGROUND_CHECK_ENABLED} instead
2889 */
2890 @Deprecated
2891 public static final String WIFI_WATCHDOG_BACKGROUND_CHECK_ENABLED =
2892 Secure.WIFI_WATCHDOG_BACKGROUND_CHECK_ENABLED;
2893
2894 /**
2895 * @deprecated Use
2896 * {@link android.provider.Settings.Secure#WIFI_WATCHDOG_BACKGROUND_CHECK_TIMEOUT_MS}
2897 * instead
2898 */
2899 @Deprecated
2900 public static final String WIFI_WATCHDOG_BACKGROUND_CHECK_TIMEOUT_MS =
2901 Secure.WIFI_WATCHDOG_BACKGROUND_CHECK_TIMEOUT_MS;
2902
2903 /**
2904 * @deprecated Use
2905 * {@link android.provider.Settings.Secure#WIFI_WATCHDOG_INITIAL_IGNORED_PING_COUNT} instead
2906 */
2907 @Deprecated
2908 public static final String WIFI_WATCHDOG_INITIAL_IGNORED_PING_COUNT =
2909 Secure.WIFI_WATCHDOG_INITIAL_IGNORED_PING_COUNT;
2910
2911 /**
2912 * @deprecated Use {@link android.provider.Settings.Secure#WIFI_WATCHDOG_MAX_AP_CHECKS}
2913 * instead
2914 */
2915 @Deprecated
2916 public static final String WIFI_WATCHDOG_MAX_AP_CHECKS = Secure.WIFI_WATCHDOG_MAX_AP_CHECKS;
2917
2918 /**
Christopher Tate06efb532012-08-24 15:29:27 -07002919 * @deprecated Use {@link android.provider.Settings.Global#WIFI_WATCHDOG_ON} instead
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08002920 */
2921 @Deprecated
Christopher Tate06efb532012-08-24 15:29:27 -07002922 public static final String WIFI_WATCHDOG_ON = Global.WIFI_WATCHDOG_ON;
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08002923
2924 /**
2925 * @deprecated Use {@link android.provider.Settings.Secure#WIFI_WATCHDOG_PING_COUNT} instead
2926 */
2927 @Deprecated
2928 public static final String WIFI_WATCHDOG_PING_COUNT = Secure.WIFI_WATCHDOG_PING_COUNT;
2929
2930 /**
2931 * @deprecated Use {@link android.provider.Settings.Secure#WIFI_WATCHDOG_PING_DELAY_MS}
2932 * instead
2933 */
2934 @Deprecated
2935 public static final String WIFI_WATCHDOG_PING_DELAY_MS = Secure.WIFI_WATCHDOG_PING_DELAY_MS;
2936
2937 /**
2938 * @deprecated Use {@link android.provider.Settings.Secure#WIFI_WATCHDOG_PING_TIMEOUT_MS}
2939 * instead
2940 */
2941 @Deprecated
2942 public static final String WIFI_WATCHDOG_PING_TIMEOUT_MS =
2943 Secure.WIFI_WATCHDOG_PING_TIMEOUT_MS;
2944 }
2945
2946 /**
2947 * Secure system settings, containing system preferences that applications
2948 * can read but are not allowed to write. These are for preferences that
2949 * the user must explicitly modify through the system UI or specialized
2950 * APIs for those values, not modified directly by applications.
2951 */
2952 public static final class Secure extends NameValueTable {
2953 public static final String SYS_PROP_SETTING_VERSION = "sys.settings_secure_version";
2954
Dianne Hackborn139748f2012-09-24 11:36:57 -07002955 /**
2956 * The content:// style URL for this table
2957 */
2958 public static final Uri CONTENT_URI =
2959 Uri.parse("content://" + AUTHORITY + "/secure");
2960
Brad Fitzpatrick1877d012010-03-04 17:48:13 -08002961 // Populated lazily, guarded by class object:
Dianne Hackborn139748f2012-09-24 11:36:57 -07002962 private static final NameValueCache sNameValueCache = new NameValueCache(
2963 SYS_PROP_SETTING_VERSION,
2964 CONTENT_URI,
2965 CALL_METHOD_GET_SECURE,
2966 CALL_METHOD_PUT_SECURE);
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08002967
Amith Yamasani52c489c2012-03-28 11:42:42 -07002968 private static ILockSettings sLockSettings = null;
2969
Amith Yamasani7ab8c4a2012-04-06 09:27:12 -07002970 private static boolean sIsSystemProcess;
Amith Yamasani52c489c2012-03-28 11:42:42 -07002971 private static final HashSet<String> MOVED_TO_LOCK_SETTINGS;
Christopher Tate06efb532012-08-24 15:29:27 -07002972 private static final HashSet<String> MOVED_TO_GLOBAL;
Amith Yamasani52c489c2012-03-28 11:42:42 -07002973 static {
2974 MOVED_TO_LOCK_SETTINGS = new HashSet<String>(3);
2975 MOVED_TO_LOCK_SETTINGS.add(Secure.LOCK_PATTERN_ENABLED);
2976 MOVED_TO_LOCK_SETTINGS.add(Secure.LOCK_PATTERN_VISIBLE);
2977 MOVED_TO_LOCK_SETTINGS.add(Secure.LOCK_PATTERN_TACTILE_FEEDBACK_ENABLED);
Christopher Tate06efb532012-08-24 15:29:27 -07002978
2979 MOVED_TO_GLOBAL = new HashSet<String>();
2980 MOVED_TO_GLOBAL.add(Settings.Global.ADB_ENABLED);
2981 MOVED_TO_GLOBAL.add(Settings.Global.ASSISTED_GPS_ENABLED);
2982 MOVED_TO_GLOBAL.add(Settings.Global.BLUETOOTH_ON);
Christopher Tate58f41ec2013-01-11 15:40:36 -08002983 MOVED_TO_GLOBAL.add(Settings.Global.BUGREPORT_IN_POWER_MENU);
Christopher Tate06efb532012-08-24 15:29:27 -07002984 MOVED_TO_GLOBAL.add(Settings.Global.CDMA_CELL_BROADCAST_SMS);
2985 MOVED_TO_GLOBAL.add(Settings.Global.CDMA_ROAMING_MODE);
2986 MOVED_TO_GLOBAL.add(Settings.Global.CDMA_SUBSCRIPTION_MODE);
2987 MOVED_TO_GLOBAL.add(Settings.Global.DATA_ACTIVITY_TIMEOUT_MOBILE);
2988 MOVED_TO_GLOBAL.add(Settings.Global.DATA_ACTIVITY_TIMEOUT_WIFI);
2989 MOVED_TO_GLOBAL.add(Settings.Global.DATA_ROAMING);
2990 MOVED_TO_GLOBAL.add(Settings.Global.DEVELOPMENT_SETTINGS_ENABLED);
2991 MOVED_TO_GLOBAL.add(Settings.Global.DEVICE_PROVISIONED);
2992 MOVED_TO_GLOBAL.add(Settings.Global.DISPLAY_DENSITY_FORCED);
2993 MOVED_TO_GLOBAL.add(Settings.Global.DISPLAY_SIZE_FORCED);
2994 MOVED_TO_GLOBAL.add(Settings.Global.DOWNLOAD_MAX_BYTES_OVER_MOBILE);
2995 MOVED_TO_GLOBAL.add(Settings.Global.DOWNLOAD_RECOMMENDED_MAX_BYTES_OVER_MOBILE);
Christopher Tate06efb532012-08-24 15:29:27 -07002996 MOVED_TO_GLOBAL.add(Settings.Global.MOBILE_DATA);
2997 MOVED_TO_GLOBAL.add(Settings.Global.NETSTATS_DEV_BUCKET_DURATION);
2998 MOVED_TO_GLOBAL.add(Settings.Global.NETSTATS_DEV_DELETE_AGE);
2999 MOVED_TO_GLOBAL.add(Settings.Global.NETSTATS_DEV_PERSIST_BYTES);
3000 MOVED_TO_GLOBAL.add(Settings.Global.NETSTATS_DEV_ROTATE_AGE);
3001 MOVED_TO_GLOBAL.add(Settings.Global.NETSTATS_ENABLED);
3002 MOVED_TO_GLOBAL.add(Settings.Global.NETSTATS_GLOBAL_ALERT_BYTES);
3003 MOVED_TO_GLOBAL.add(Settings.Global.NETSTATS_POLL_INTERVAL);
3004 MOVED_TO_GLOBAL.add(Settings.Global.NETSTATS_REPORT_XT_OVER_DEV);
3005 MOVED_TO_GLOBAL.add(Settings.Global.NETSTATS_SAMPLE_ENABLED);
3006 MOVED_TO_GLOBAL.add(Settings.Global.NETSTATS_TIME_CACHE_MAX_AGE);
3007 MOVED_TO_GLOBAL.add(Settings.Global.NETSTATS_UID_BUCKET_DURATION);
3008 MOVED_TO_GLOBAL.add(Settings.Global.NETSTATS_UID_DELETE_AGE);
3009 MOVED_TO_GLOBAL.add(Settings.Global.NETSTATS_UID_PERSIST_BYTES);
3010 MOVED_TO_GLOBAL.add(Settings.Global.NETSTATS_UID_ROTATE_AGE);
3011 MOVED_TO_GLOBAL.add(Settings.Global.NETSTATS_UID_TAG_BUCKET_DURATION);
3012 MOVED_TO_GLOBAL.add(Settings.Global.NETSTATS_UID_TAG_DELETE_AGE);
3013 MOVED_TO_GLOBAL.add(Settings.Global.NETSTATS_UID_TAG_PERSIST_BYTES);
3014 MOVED_TO_GLOBAL.add(Settings.Global.NETSTATS_UID_TAG_ROTATE_AGE);
3015 MOVED_TO_GLOBAL.add(Settings.Global.NETWORK_PREFERENCE);
3016 MOVED_TO_GLOBAL.add(Settings.Global.NITZ_UPDATE_DIFF);
3017 MOVED_TO_GLOBAL.add(Settings.Global.NITZ_UPDATE_SPACING);
3018 MOVED_TO_GLOBAL.add(Settings.Global.NTP_SERVER);
3019 MOVED_TO_GLOBAL.add(Settings.Global.NTP_TIMEOUT);
3020 MOVED_TO_GLOBAL.add(Settings.Global.PDP_WATCHDOG_ERROR_POLL_COUNT);
3021 MOVED_TO_GLOBAL.add(Settings.Global.PDP_WATCHDOG_LONG_POLL_INTERVAL_MS);
3022 MOVED_TO_GLOBAL.add(Settings.Global.PDP_WATCHDOG_MAX_PDP_RESET_FAIL_COUNT);
3023 MOVED_TO_GLOBAL.add(Settings.Global.PDP_WATCHDOG_POLL_INTERVAL_MS);
3024 MOVED_TO_GLOBAL.add(Settings.Global.PDP_WATCHDOG_TRIGGER_PACKET_COUNT);
3025 MOVED_TO_GLOBAL.add(Settings.Global.SAMPLING_PROFILER_MS);
3026 MOVED_TO_GLOBAL.add(Settings.Global.SETUP_PREPAID_DATA_SERVICE_URL);
3027 MOVED_TO_GLOBAL.add(Settings.Global.SETUP_PREPAID_DETECTION_REDIR_HOST);
3028 MOVED_TO_GLOBAL.add(Settings.Global.SETUP_PREPAID_DETECTION_TARGET_URL);
3029 MOVED_TO_GLOBAL.add(Settings.Global.TETHER_DUN_APN);
3030 MOVED_TO_GLOBAL.add(Settings.Global.TETHER_DUN_REQUIRED);
3031 MOVED_TO_GLOBAL.add(Settings.Global.TETHER_SUPPORTED);
Christopher Tate06efb532012-08-24 15:29:27 -07003032 MOVED_TO_GLOBAL.add(Settings.Global.USB_MASS_STORAGE_ENABLED);
3033 MOVED_TO_GLOBAL.add(Settings.Global.USE_GOOGLE_MAIL);
Robert Greenwalt3ea0c992013-10-03 21:13:49 +00003034 MOVED_TO_GLOBAL.add(Settings.Global.WIFI_COUNTRY_CODE);
Christopher Tate06efb532012-08-24 15:29:27 -07003035 MOVED_TO_GLOBAL.add(Settings.Global.WIFI_FRAMEWORK_SCAN_INTERVAL_MS);
3036 MOVED_TO_GLOBAL.add(Settings.Global.WIFI_FREQUENCY_BAND);
3037 MOVED_TO_GLOBAL.add(Settings.Global.WIFI_IDLE_MS);
3038 MOVED_TO_GLOBAL.add(Settings.Global.WIFI_MAX_DHCP_RETRY_COUNT);
3039 MOVED_TO_GLOBAL.add(Settings.Global.WIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MS);
3040 MOVED_TO_GLOBAL.add(Settings.Global.WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON);
3041 MOVED_TO_GLOBAL.add(Settings.Global.WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY);
3042 MOVED_TO_GLOBAL.add(Settings.Global.WIFI_NUM_OPEN_NETWORKS_KEPT);
3043 MOVED_TO_GLOBAL.add(Settings.Global.WIFI_ON);
3044 MOVED_TO_GLOBAL.add(Settings.Global.WIFI_P2P_DEVICE_NAME);
3045 MOVED_TO_GLOBAL.add(Settings.Global.WIFI_SAVED_STATE);
3046 MOVED_TO_GLOBAL.add(Settings.Global.WIFI_SUPPLICANT_SCAN_INTERVAL_MS);
3047 MOVED_TO_GLOBAL.add(Settings.Global.WIFI_SUSPEND_OPTIMIZATIONS_ENABLED);
vandwalle7c3606c2014-03-31 19:12:07 -07003048 MOVED_TO_GLOBAL.add(Settings.Global.WIFI_ENHANCED_AUTO_JOIN);
3049 MOVED_TO_GLOBAL.add(Settings.Global.WIFI_NETWORK_SHOW_RSSI);
Christopher Tate06efb532012-08-24 15:29:27 -07003050 MOVED_TO_GLOBAL.add(Settings.Global.WIFI_WATCHDOG_ON);
3051 MOVED_TO_GLOBAL.add(Settings.Global.WIFI_WATCHDOG_POOR_NETWORK_TEST_ENABLED);
Christopher Tate06efb532012-08-24 15:29:27 -07003052 MOVED_TO_GLOBAL.add(Settings.Global.WIMAX_NETWORKS_AVAILABLE_NOTIFICATION_ON);
Christopher Tatec868b642012-09-12 17:41:04 -07003053 MOVED_TO_GLOBAL.add(Settings.Global.PACKAGE_VERIFIER_ENABLE);
3054 MOVED_TO_GLOBAL.add(Settings.Global.PACKAGE_VERIFIER_TIMEOUT);
3055 MOVED_TO_GLOBAL.add(Settings.Global.PACKAGE_VERIFIER_DEFAULT_RESPONSE);
3056 MOVED_TO_GLOBAL.add(Settings.Global.DATA_STALL_ALARM_NON_AGGRESSIVE_DELAY_IN_MS);
3057 MOVED_TO_GLOBAL.add(Settings.Global.DATA_STALL_ALARM_AGGRESSIVE_DELAY_IN_MS);
3058 MOVED_TO_GLOBAL.add(Settings.Global.GPRS_REGISTER_CHECK_PERIOD_MS);
Christopher Tate06efb532012-08-24 15:29:27 -07003059 MOVED_TO_GLOBAL.add(Settings.Global.WTF_IS_FATAL);
Jeff Sharkey625239a2012-09-26 22:03:49 -07003060 MOVED_TO_GLOBAL.add(Settings.Global.BATTERY_DISCHARGE_DURATION_THRESHOLD);
3061 MOVED_TO_GLOBAL.add(Settings.Global.BATTERY_DISCHARGE_THRESHOLD);
3062 MOVED_TO_GLOBAL.add(Settings.Global.SEND_ACTION_APP_ERROR);
3063 MOVED_TO_GLOBAL.add(Settings.Global.DROPBOX_AGE_SECONDS);
3064 MOVED_TO_GLOBAL.add(Settings.Global.DROPBOX_MAX_FILES);
3065 MOVED_TO_GLOBAL.add(Settings.Global.DROPBOX_QUOTA_KB);
3066 MOVED_TO_GLOBAL.add(Settings.Global.DROPBOX_QUOTA_PERCENT);
3067 MOVED_TO_GLOBAL.add(Settings.Global.DROPBOX_RESERVE_PERCENT);
3068 MOVED_TO_GLOBAL.add(Settings.Global.DROPBOX_TAG_PREFIX);
3069 MOVED_TO_GLOBAL.add(Settings.Global.ERROR_LOGCAT_PREFIX);
3070 MOVED_TO_GLOBAL.add(Settings.Global.SYS_FREE_STORAGE_LOG_INTERVAL);
3071 MOVED_TO_GLOBAL.add(Settings.Global.DISK_FREE_CHANGE_REPORTING_THRESHOLD);
3072 MOVED_TO_GLOBAL.add(Settings.Global.SYS_STORAGE_THRESHOLD_PERCENTAGE);
3073 MOVED_TO_GLOBAL.add(Settings.Global.SYS_STORAGE_THRESHOLD_MAX_BYTES);
3074 MOVED_TO_GLOBAL.add(Settings.Global.SYS_STORAGE_FULL_THRESHOLD_BYTES);
3075 MOVED_TO_GLOBAL.add(Settings.Global.SYNC_MAX_RETRY_DELAY_IN_SECONDS);
3076 MOVED_TO_GLOBAL.add(Settings.Global.CONNECTIVITY_CHANGE_DELAY);
3077 MOVED_TO_GLOBAL.add(Settings.Global.CAPTIVE_PORTAL_DETECTION_ENABLED);
3078 MOVED_TO_GLOBAL.add(Settings.Global.CAPTIVE_PORTAL_SERVER);
3079 MOVED_TO_GLOBAL.add(Settings.Global.NSD_ON);
3080 MOVED_TO_GLOBAL.add(Settings.Global.SET_INSTALL_LOCATION);
3081 MOVED_TO_GLOBAL.add(Settings.Global.DEFAULT_INSTALL_LOCATION);
3082 MOVED_TO_GLOBAL.add(Settings.Global.INET_CONDITION_DEBOUNCE_UP_DELAY);
3083 MOVED_TO_GLOBAL.add(Settings.Global.INET_CONDITION_DEBOUNCE_DOWN_DELAY);
3084 MOVED_TO_GLOBAL.add(Settings.Global.READ_EXTERNAL_STORAGE_ENFORCED_DEFAULT);
3085 MOVED_TO_GLOBAL.add(Settings.Global.HTTP_PROXY);
3086 MOVED_TO_GLOBAL.add(Settings.Global.GLOBAL_HTTP_PROXY_HOST);
3087 MOVED_TO_GLOBAL.add(Settings.Global.GLOBAL_HTTP_PROXY_PORT);
3088 MOVED_TO_GLOBAL.add(Settings.Global.GLOBAL_HTTP_PROXY_EXCLUSION_LIST);
3089 MOVED_TO_GLOBAL.add(Settings.Global.SET_GLOBAL_HTTP_PROXY);
3090 MOVED_TO_GLOBAL.add(Settings.Global.DEFAULT_DNS_SERVER);
Jeff Sharkey6e2bee72012-10-01 13:39:08 -07003091 MOVED_TO_GLOBAL.add(Settings.Global.PREFERRED_NETWORK_MODE);
Selim Gurun178201f2014-05-16 11:38:44 -07003092 MOVED_TO_GLOBAL.add(Settings.Global.WEBVIEW_DATA_REDUCTION_PROXY_KEY);
Christopher Tate06efb532012-08-24 15:29:27 -07003093 }
3094
Christopher Tate66488d62012-10-02 11:58:01 -07003095 /** @hide */
3096 public static void getMovedKeys(HashSet<String> outKeySet) {
3097 outKeySet.addAll(MOVED_TO_GLOBAL);
3098 }
3099
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08003100 /**
3101 * Look up a name in the database.
3102 * @param resolver to access the database with
3103 * @param name to look up in the table
3104 * @return the corresponding value, or null if not present
3105 */
Dianne Hackborn139748f2012-09-24 11:36:57 -07003106 public static String getString(ContentResolver resolver, String name) {
Christopher Tate06efb532012-08-24 15:29:27 -07003107 return getStringForUser(resolver, name, UserHandle.myUserId());
3108 }
3109
3110 /** @hide */
Dianne Hackborn139748f2012-09-24 11:36:57 -07003111 public static String getStringForUser(ContentResolver resolver, String name,
Christopher Tate06efb532012-08-24 15:29:27 -07003112 int userHandle) {
3113 if (MOVED_TO_GLOBAL.contains(name)) {
3114 Log.w(TAG, "Setting " + name + " has moved from android.provider.Settings.Secure"
3115 + " to android.provider.Settings.Global.");
3116 return Global.getStringForUser(resolver, name, userHandle);
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08003117 }
Amith Yamasani52c489c2012-03-28 11:42:42 -07003118
Dianne Hackborn139748f2012-09-24 11:36:57 -07003119 if (MOVED_TO_LOCK_SETTINGS.contains(name)) {
3120 synchronized (Secure.class) {
3121 if (sLockSettings == null) {
3122 sLockSettings = ILockSettings.Stub.asInterface(
3123 (IBinder) ServiceManager.getService("lock_settings"));
3124 sIsSystemProcess = Process.myUid() == Process.SYSTEM_UID;
3125 }
3126 }
3127 if (sLockSettings != null && !sIsSystemProcess) {
3128 try {
3129 return sLockSettings.getString(name, "0", userHandle);
3130 } catch (RemoteException re) {
3131 // Fall through
3132 }
Amith Yamasani52c489c2012-03-28 11:42:42 -07003133 }
3134 }
3135
Christopher Tate06efb532012-08-24 15:29:27 -07003136 return sNameValueCache.getStringForUser(resolver, name, userHandle);
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08003137 }
3138
3139 /**
3140 * Store a name/value pair into the database.
3141 * @param resolver to access the database with
3142 * @param name to store
3143 * @param value to associate with the name
3144 * @return true if the value was set, false on database errors
3145 */
Christopher Tate06efb532012-08-24 15:29:27 -07003146 public static boolean putString(ContentResolver resolver, String name, String value) {
3147 return putStringForUser(resolver, name, value, UserHandle.myUserId());
3148 }
3149
3150 /** @hide */
3151 public static boolean putStringForUser(ContentResolver resolver, String name, String value,
3152 int userHandle) {
Julia Reynolds82735bc2014-09-04 16:43:30 -04003153 if (LOCATION_MODE.equals(name)) {
3154 // HACK ALERT: temporary hack to work around b/10491283.
3155 // TODO: once b/10491283 fixed, remove this hack
3156 return setLocationModeForUser(resolver, Integer.parseInt(value), userHandle);
3157 }
Christopher Tate06efb532012-08-24 15:29:27 -07003158 if (MOVED_TO_GLOBAL.contains(name)) {
3159 Log.w(TAG, "Setting " + name + " has moved from android.provider.Settings.System"
3160 + " to android.provider.Settings.Global");
3161 return Global.putStringForUser(resolver, name, value, userHandle);
3162 }
Christopher Tate06efb532012-08-24 15:29:27 -07003163 return sNameValueCache.putStringForUser(resolver, name, value, userHandle);
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08003164 }
3165
3166 /**
3167 * Construct the content URI for a particular name/value pair,
3168 * useful for monitoring changes with a ContentObserver.
3169 * @param name to look up in the table
3170 * @return the corresponding content URI, or null if not present
3171 */
3172 public static Uri getUriFor(String name) {
Christopher Tate06efb532012-08-24 15:29:27 -07003173 if (MOVED_TO_GLOBAL.contains(name)) {
3174 Log.w(TAG, "Setting " + name + " has moved from android.provider.Settings.Secure"
3175 + " to android.provider.Settings.Global, returning global URI.");
3176 return Global.getUriFor(Global.CONTENT_URI, name);
3177 }
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08003178 return getUriFor(CONTENT_URI, name);
3179 }
3180
3181 /**
3182 * Convenience function for retrieving a single secure settings value
3183 * as an integer. Note that internally setting values are always
3184 * stored as strings; this function converts the string to an integer
3185 * for you. The default value will be returned if the setting is
3186 * not defined or not an integer.
3187 *
3188 * @param cr The ContentResolver to access.
3189 * @param name The name of the setting to retrieve.
3190 * @param def Value to return if the setting is not defined.
3191 *
3192 * @return The setting's current value, or 'def' if it is not defined
3193 * or not a valid integer.
3194 */
3195 public static int getInt(ContentResolver cr, String name, int def) {
Christopher Tate06efb532012-08-24 15:29:27 -07003196 return getIntForUser(cr, name, def, UserHandle.myUserId());
3197 }
3198
3199 /** @hide */
3200 public static int getIntForUser(ContentResolver cr, String name, int def, int userHandle) {
Tom O'Neill7f6f4572013-08-27 10:53:15 -07003201 if (LOCATION_MODE.equals(name)) {
3202 // HACK ALERT: temporary hack to work around b/10491283.
3203 // TODO: once b/10491283 fixed, remove this hack
3204 return getLocationModeForUser(cr, userHandle);
3205 }
Christopher Tate06efb532012-08-24 15:29:27 -07003206 String v = getStringForUser(cr, name, userHandle);
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08003207 try {
3208 return v != null ? Integer.parseInt(v) : def;
3209 } catch (NumberFormatException e) {
3210 return def;
3211 }
3212 }
3213
3214 /**
3215 * Convenience function for retrieving a single secure settings value
3216 * as an integer. Note that internally setting values are always
3217 * stored as strings; this function converts the string to an integer
3218 * for you.
3219 * <p>
3220 * This version does not take a default value. If the setting has not
3221 * been set, or the string value is not a number,
3222 * it throws {@link SettingNotFoundException}.
3223 *
3224 * @param cr The ContentResolver to access.
3225 * @param name The name of the setting to retrieve.
3226 *
3227 * @throws SettingNotFoundException Thrown if a setting by the given
3228 * name can't be found or the setting value is not an integer.
3229 *
3230 * @return The setting's current value.
3231 */
3232 public static int getInt(ContentResolver cr, String name)
3233 throws SettingNotFoundException {
Christopher Tate06efb532012-08-24 15:29:27 -07003234 return getIntForUser(cr, name, UserHandle.myUserId());
3235 }
3236
3237 /** @hide */
3238 public static int getIntForUser(ContentResolver cr, String name, int userHandle)
3239 throws SettingNotFoundException {
Tom O'Neill7f6f4572013-08-27 10:53:15 -07003240 if (LOCATION_MODE.equals(name)) {
3241 // HACK ALERT: temporary hack to work around b/10491283.
3242 // TODO: once b/10491283 fixed, remove this hack
3243 return getLocationModeForUser(cr, userHandle);
3244 }
Christopher Tate06efb532012-08-24 15:29:27 -07003245 String v = getStringForUser(cr, name, userHandle);
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08003246 try {
3247 return Integer.parseInt(v);
3248 } catch (NumberFormatException e) {
3249 throw new SettingNotFoundException(name);
3250 }
3251 }
3252
3253 /**
3254 * Convenience function for updating a single settings value as an
3255 * integer. This will either create a new entry in the table if the
3256 * given name does not exist, or modify the value of the existing row
3257 * with that name. Note that internally setting values are always
3258 * stored as strings, so this function converts the given value to a
3259 * string before storing it.
3260 *
3261 * @param cr The ContentResolver to access.
3262 * @param name The name of the setting to modify.
3263 * @param value The new value for the setting.
3264 * @return true if the value was set, false on database errors
3265 */
3266 public static boolean putInt(ContentResolver cr, String name, int value) {
Christopher Tate06efb532012-08-24 15:29:27 -07003267 return putIntForUser(cr, name, value, UserHandle.myUserId());
3268 }
3269
3270 /** @hide */
3271 public static boolean putIntForUser(ContentResolver cr, String name, int value,
3272 int userHandle) {
3273 return putStringForUser(cr, name, Integer.toString(value), userHandle);
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08003274 }
3275
3276 /**
3277 * Convenience function for retrieving a single secure settings value
3278 * as a {@code long}. Note that internally setting values are always
3279 * stored as strings; this function converts the string to a {@code long}
3280 * for you. The default value will be returned if the setting is
3281 * not defined or not a {@code long}.
3282 *
3283 * @param cr The ContentResolver to access.
3284 * @param name The name of the setting to retrieve.
3285 * @param def Value to return if the setting is not defined.
3286 *
3287 * @return The setting's current value, or 'def' if it is not defined
3288 * or not a valid {@code long}.
3289 */
3290 public static long getLong(ContentResolver cr, String name, long def) {
Christopher Tate06efb532012-08-24 15:29:27 -07003291 return getLongForUser(cr, name, def, UserHandle.myUserId());
3292 }
3293
3294 /** @hide */
3295 public static long getLongForUser(ContentResolver cr, String name, long def,
3296 int userHandle) {
3297 String valString = getStringForUser(cr, name, userHandle);
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08003298 long value;
3299 try {
3300 value = valString != null ? Long.parseLong(valString) : def;
3301 } catch (NumberFormatException e) {
3302 value = def;
3303 }
3304 return value;
3305 }
3306
3307 /**
3308 * Convenience function for retrieving a single secure settings value
3309 * as a {@code long}. Note that internally setting values are always
3310 * stored as strings; this function converts the string to a {@code long}
3311 * for you.
3312 * <p>
3313 * This version does not take a default value. If the setting has not
3314 * been set, or the string value is not a number,
3315 * it throws {@link SettingNotFoundException}.
3316 *
3317 * @param cr The ContentResolver to access.
3318 * @param name The name of the setting to retrieve.
3319 *
3320 * @return The setting's current value.
3321 * @throws SettingNotFoundException Thrown if a setting by the given
3322 * name can't be found or the setting value is not an integer.
3323 */
3324 public static long getLong(ContentResolver cr, String name)
3325 throws SettingNotFoundException {
Christopher Tate06efb532012-08-24 15:29:27 -07003326 return getLongForUser(cr, name, UserHandle.myUserId());
3327 }
3328
3329 /** @hide */
3330 public static long getLongForUser(ContentResolver cr, String name, int userHandle)
3331 throws SettingNotFoundException {
3332 String valString = getStringForUser(cr, name, userHandle);
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08003333 try {
3334 return Long.parseLong(valString);
3335 } catch (NumberFormatException e) {
3336 throw new SettingNotFoundException(name);
3337 }
3338 }
3339
3340 /**
3341 * Convenience function for updating a secure settings value as a long
3342 * integer. This will either create a new entry in the table if the
3343 * given name does not exist, or modify the value of the existing row
3344 * with that name. Note that internally setting values are always
3345 * stored as strings, so this function converts the given value to a
3346 * string before storing it.
3347 *
3348 * @param cr The ContentResolver to access.
3349 * @param name The name of the setting to modify.
3350 * @param value The new value for the setting.
3351 * @return true if the value was set, false on database errors
3352 */
3353 public static boolean putLong(ContentResolver cr, String name, long value) {
Christopher Tate06efb532012-08-24 15:29:27 -07003354 return putLongForUser(cr, name, value, UserHandle.myUserId());
3355 }
3356
3357 /** @hide */
3358 public static boolean putLongForUser(ContentResolver cr, String name, long value,
3359 int userHandle) {
3360 return putStringForUser(cr, name, Long.toString(value), userHandle);
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08003361 }
3362
3363 /**
3364 * Convenience function for retrieving a single secure settings value
3365 * as a floating point number. Note that internally setting values are
3366 * always stored as strings; this function converts the string to an
3367 * float for you. The default value will be returned if the setting
3368 * is not defined or not a valid float.
3369 *
3370 * @param cr The ContentResolver to access.
3371 * @param name The name of the setting to retrieve.
3372 * @param def Value to return if the setting is not defined.
3373 *
3374 * @return The setting's current value, or 'def' if it is not defined
3375 * or not a valid float.
3376 */
3377 public static float getFloat(ContentResolver cr, String name, float def) {
Christopher Tate06efb532012-08-24 15:29:27 -07003378 return getFloatForUser(cr, name, def, UserHandle.myUserId());
3379 }
3380
3381 /** @hide */
3382 public static float getFloatForUser(ContentResolver cr, String name, float def,
3383 int userHandle) {
3384 String v = getStringForUser(cr, name, userHandle);
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08003385 try {
3386 return v != null ? Float.parseFloat(v) : def;
3387 } catch (NumberFormatException e) {
3388 return def;
3389 }
3390 }
3391
3392 /**
3393 * Convenience function for retrieving a single secure settings value
3394 * as a float. Note that internally setting values are always
3395 * stored as strings; this function converts the string to a float
3396 * for you.
3397 * <p>
3398 * This version does not take a default value. If the setting has not
3399 * been set, or the string value is not a number,
3400 * it throws {@link SettingNotFoundException}.
3401 *
3402 * @param cr The ContentResolver to access.
3403 * @param name The name of the setting to retrieve.
3404 *
3405 * @throws SettingNotFoundException Thrown if a setting by the given
3406 * name can't be found or the setting value is not a float.
3407 *
3408 * @return The setting's current value.
3409 */
3410 public static float getFloat(ContentResolver cr, String name)
3411 throws SettingNotFoundException {
Christopher Tate06efb532012-08-24 15:29:27 -07003412 return getFloatForUser(cr, name, UserHandle.myUserId());
3413 }
3414
3415 /** @hide */
3416 public static float getFloatForUser(ContentResolver cr, String name, int userHandle)
3417 throws SettingNotFoundException {
3418 String v = getStringForUser(cr, name, userHandle);
Brian Muramatsue1d46982010-12-06 17:34:20 -08003419 if (v == null) {
3420 throw new SettingNotFoundException(name);
3421 }
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08003422 try {
3423 return Float.parseFloat(v);
3424 } catch (NumberFormatException e) {
3425 throw new SettingNotFoundException(name);
3426 }
3427 }
3428
3429 /**
3430 * Convenience function for updating a single settings value as a
3431 * floating point number. This will either create a new entry in the
3432 * table if the given name does not exist, or modify the value of the
3433 * existing row with that name. Note that internally setting values
3434 * are always stored as strings, so this function converts the given
3435 * value to a string before storing it.
3436 *
3437 * @param cr The ContentResolver to access.
3438 * @param name The name of the setting to modify.
3439 * @param value The new value for the setting.
3440 * @return true if the value was set, false on database errors
3441 */
3442 public static boolean putFloat(ContentResolver cr, String name, float value) {
Christopher Tate06efb532012-08-24 15:29:27 -07003443 return putFloatForUser(cr, name, value, UserHandle.myUserId());
3444 }
3445
3446 /** @hide */
3447 public static boolean putFloatForUser(ContentResolver cr, String name, float value,
3448 int userHandle) {
3449 return putStringForUser(cr, name, Float.toString(value), userHandle);
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08003450 }
3451
3452 /**
Christopher Tate06efb532012-08-24 15:29:27 -07003453 * @deprecated Use {@link android.provider.Settings.Global#DEVELOPMENT_SETTINGS_ENABLED}
3454 * instead
Dianne Hackborn895f99e2012-02-02 11:49:12 -08003455 */
Christopher Tate06efb532012-08-24 15:29:27 -07003456 @Deprecated
3457 public static final String DEVELOPMENT_SETTINGS_ENABLED =
3458 Global.DEVELOPMENT_SETTINGS_ENABLED;
Dianne Hackborn895f99e2012-02-02 11:49:12 -08003459
3460 /**
Dianne Hackborn5773bfdb2012-07-13 13:24:15 -07003461 * When the user has enable the option to have a "bug report" command
3462 * in the power menu.
Christopher Tate58f41ec2013-01-11 15:40:36 -08003463 * @deprecated Use {@link android.provider.Settings.Global#BUGREPORT_IN_POWER_MENU} instead
Dianne Hackborn5773bfdb2012-07-13 13:24:15 -07003464 * @hide
3465 */
Christopher Tate58f41ec2013-01-11 15:40:36 -08003466 @Deprecated
Dianne Hackborn5773bfdb2012-07-13 13:24:15 -07003467 public static final String BUGREPORT_IN_POWER_MENU = "bugreport_in_power_menu";
3468
3469 /**
Christopher Tate06efb532012-08-24 15:29:27 -07003470 * @deprecated Use {@link android.provider.Settings.Global#ADB_ENABLED} instead
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08003471 */
Christopher Tate06efb532012-08-24 15:29:27 -07003472 @Deprecated
3473 public static final String ADB_ENABLED = Global.ADB_ENABLED;
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08003474
3475 /**
3476 * Setting to allow mock locations and location provider status to be injected into the
3477 * LocationManager service for testing purposes during application development. These
3478 * locations and status values override actual location and status information generated
3479 * by network, gps, or other location providers.
3480 */
3481 public static final String ALLOW_MOCK_LOCATION = "mock_location";
3482
3483 /**
Doug Zongkerd8893db2010-01-26 12:29:44 -08003484 * A 64-bit number (as a hex string) that is randomly
Scott Main44895332013-11-12 09:23:13 -08003485 * generated when the user first sets up the device and should remain
3486 * constant for the lifetime of the user's device. The value may
3487 * change if a factory reset is performed on the device.
3488 * <p class="note"><strong>Note:</strong> When a device has <a
3489 * href="{@docRoot}about/versions/android-4.2.html#MultipleUsers">multiple users</a>
3490 * (available on certain devices running Android 4.2 or higher), each user appears as a
3491 * completely separate device, so the {@code ANDROID_ID} value is unique to each
3492 * user.</p>
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08003493 */
3494 public static final String ANDROID_ID = "android_id";
3495
3496 /**
Christopher Tate06efb532012-08-24 15:29:27 -07003497 * @deprecated Use {@link android.provider.Settings.Global#BLUETOOTH_ON} instead
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08003498 */
Christopher Tate06efb532012-08-24 15:29:27 -07003499 @Deprecated
3500 public static final String BLUETOOTH_ON = Global.BLUETOOTH_ON;
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08003501
3502 /**
Christopher Tate06efb532012-08-24 15:29:27 -07003503 * @deprecated Use {@link android.provider.Settings.Global#DATA_ROAMING} instead
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08003504 */
Jeff Sharkeybdfce2e2012-09-26 15:54:06 -07003505 @Deprecated
Christopher Tate06efb532012-08-24 15:29:27 -07003506 public static final String DATA_ROAMING = Global.DATA_ROAMING;
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08003507
3508 /**
3509 * Setting to record the input method used by default, holding the ID
3510 * of the desired method.
3511 */
3512 public static final String DEFAULT_INPUT_METHOD = "default_input_method";
3513
3514 /**
satokab751aa2010-09-14 19:17:36 +09003515 * Setting to record the input method subtype used by default, holding the ID
3516 * of the desired method.
3517 */
3518 public static final String SELECTED_INPUT_METHOD_SUBTYPE =
3519 "selected_input_method_subtype";
3520
3521 /**
satok723a27e2010-11-11 14:58:11 +09003522 * Setting to record the history of input method subtype, holding the pair of ID of IME
3523 * and its last used subtype.
3524 * @hide
3525 */
3526 public static final String INPUT_METHODS_SUBTYPE_HISTORY =
3527 "input_methods_subtype_history";
3528
3529 /**
satok5c58dfc2010-12-14 21:54:47 +09003530 * Setting to record the visibility of input method selector
3531 */
3532 public static final String INPUT_METHOD_SELECTOR_VISIBILITY =
3533 "input_method_selector_visibility";
3534
3535 /**
Dianne Hackborn91097de2014-04-04 18:02:06 -07003536 * The currently selected voice interaction service flattened ComponentName.
3537 * @hide
3538 */
3539 public static final String VOICE_INTERACTION_SERVICE = "voice_interaction_service";
3540
3541 /**
Zhihai Xuaf5971e2013-06-10 20:28:31 -07003542 * bluetooth HCI snoop log configuration
3543 * @hide
3544 */
3545 public static final String BLUETOOTH_HCI_LOG =
3546 "bluetooth_hci_log";
3547
3548 /**
Christopher Tate06efb532012-08-24 15:29:27 -07003549 * @deprecated Use {@link android.provider.Settings.Global#DEVICE_PROVISIONED} instead
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08003550 */
Christopher Tate06efb532012-08-24 15:29:27 -07003551 @Deprecated
3552 public static final String DEVICE_PROVISIONED = Global.DEVICE_PROVISIONED;
Jaikumar Ganesh9bfbfbd2009-05-15 12:05:56 -07003553
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08003554 /**
Russell Brennerde6ae442012-09-26 20:53:10 -07003555 * Whether the current user has been set up via setup wizard (0 = false, 1 = true)
3556 * @hide
3557 */
3558 public static final String USER_SETUP_COMPLETE = "user_setup_complete";
3559
3560 /**
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08003561 * List of input methods that are currently enabled. This is a string
3562 * containing the IDs of all enabled input methods, each ID separated
3563 * by ':'.
3564 */
3565 public static final String ENABLED_INPUT_METHODS = "enabled_input_methods";
Jaikumar Ganesh9bfbfbd2009-05-15 12:05:56 -07003566
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08003567 /**
Amith Yamasanie861ec12010-03-24 21:39:27 -07003568 * List of system input methods that are currently disabled. This is a string
3569 * containing the IDs of all disabled input methods, each ID separated
3570 * by ':'.
3571 * @hide
3572 */
3573 public static final String DISABLED_SYSTEM_INPUT_METHODS = "disabled_system_input_methods";
3574
3575 /**
Michael Wright7b5a96b2014-08-09 19:28:42 -07003576 * Whether to show the IME when a hard keyboard is connected. This is a boolean that
3577 * determines if the IME should be shown when a hard keyboard is attached.
3578 * @hide
3579 */
3580 public static final String SHOW_IME_WITH_HARD_KEYBOARD = "show_ime_with_hard_keyboard";
3581
3582 /**
Jeff Sharkey625239a2012-09-26 22:03:49 -07003583 * Host name and port for global http proxy. Uses ':' seperator for
3584 * between host and port.
3585 *
3586 * @deprecated Use {@link Global#HTTP_PROXY}
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08003587 */
Jeff Sharkey625239a2012-09-26 22:03:49 -07003588 @Deprecated
3589 public static final String HTTP_PROXY = Global.HTTP_PROXY;
Robert Greenwalte90aa5e2010-09-01 11:34:05 -07003590
3591 /**
Christopher Tateaa036a22014-05-19 16:33:27 -07003592 * Whether applications can be installed for this user via the system's
3593 * {@link Intent#ACTION_INSTALL_PACKAGE} mechanism.
3594 *
3595 * <p>1 = permit app installation via the system package installer intent
3596 * <p>0 = do not allow use of the package installer
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08003597 */
Christopher Tateaa036a22014-05-19 16:33:27 -07003598 public static final String INSTALL_NON_MARKET_APPS = "install_non_market_apps";
Jaikumar Ganesh9bfbfbd2009-05-15 12:05:56 -07003599
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08003600 /**
Tom O'Neill923c0dc2014-03-03 11:07:55 -08003601 * Comma-separated list of location providers that activities may access. Do not rely on
3602 * this value being present in settings.db or on ContentObserver notifications on the
3603 * corresponding Uri.
Tom O'Neilla324ac72013-08-26 14:40:23 -07003604 *
Tom O'Neill923c0dc2014-03-03 11:07:55 -08003605 * @deprecated use {@link #LOCATION_MODE} and
3606 * {@link LocationManager#MODE_CHANGED_ACTION} (or
3607 * {@link LocationManager#PROVIDERS_CHANGED_ACTION})
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08003608 */
Tom O'Neilla324ac72013-08-26 14:40:23 -07003609 @Deprecated
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08003610 public static final String LOCATION_PROVIDERS_ALLOWED = "location_providers_allowed";
Jaikumar Ganesh9bfbfbd2009-05-15 12:05:56 -07003611
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08003612 /**
Tom O'Neill7f6f4572013-08-27 10:53:15 -07003613 * The degree of location access enabled by the user.
Tom O'Neill923c0dc2014-03-03 11:07:55 -08003614 * <p>
Tom O'Neill7f6f4572013-08-27 10:53:15 -07003615 * When used with {@link #putInt(ContentResolver, String, int)}, must be one of {@link
3616 * #LOCATION_MODE_HIGH_ACCURACY}, {@link #LOCATION_MODE_SENSORS_ONLY}, {@link
3617 * #LOCATION_MODE_BATTERY_SAVING}, or {@link #LOCATION_MODE_OFF}. When used with {@link
3618 * #getInt(ContentResolver, String)}, the caller must gracefully handle additional location
3619 * modes that might be added in the future.
Tom O'Neill923c0dc2014-03-03 11:07:55 -08003620 * <p>
3621 * Note: do not rely on this value being present in settings.db or on ContentObserver
3622 * notifications for the corresponding Uri. Use {@link LocationManager#MODE_CHANGED_ACTION}
3623 * to receive changes in this value.
Tom O'Neilla324ac72013-08-26 14:40:23 -07003624 */
3625 public static final String LOCATION_MODE = "location_mode";
3626
3627 /**
Tom O'Neill7f6f4572013-08-27 10:53:15 -07003628 * Location access disabled.
Tom O'Neill1f48b782013-08-19 18:14:56 -07003629 */
3630 public static final int LOCATION_MODE_OFF = 0;
3631 /**
3632 * Network Location Provider disabled, but GPS and other sensors enabled.
3633 */
3634 public static final int LOCATION_MODE_SENSORS_ONLY = 1;
3635 /**
Tom O'Neilld5759432013-09-11 11:03:03 -07003636 * Reduced power usage, such as limiting the number of GPS updates per hour. Requests
3637 * with {@link android.location.Criteria#POWER_HIGH} may be downgraded to
3638 * {@link android.location.Criteria#POWER_MEDIUM}.
Tom O'Neill1f48b782013-08-19 18:14:56 -07003639 */
3640 public static final int LOCATION_MODE_BATTERY_SAVING = 2;
3641 /**
3642 * Best-effort location computation allowed.
3643 */
3644 public static final int LOCATION_MODE_HIGH_ACCURACY = 3;
3645
3646 /**
Danielle Millett925a7d82012-03-19 18:02:20 -04003647 * A flag containing settings used for biometric weak
3648 * @hide
3649 */
3650 public static final String LOCK_BIOMETRIC_WEAK_FLAGS =
3651 "lock_biometric_weak_flags";
3652
3653 /**
Amith Yamasani156c4352010-03-05 17:10:03 -08003654 * Whether autolock is enabled (0 = false, 1 = true)
3655 */
3656 public static final String LOCK_PATTERN_ENABLED = "lock_pattern_autolock";
3657
3658 /**
3659 * Whether lock pattern is visible as user enters (0 = false, 1 = true)
3660 */
3661 public static final String LOCK_PATTERN_VISIBLE = "lock_pattern_visible_pattern";
3662
3663 /**
Jeff Sharkey5ed9d682012-10-10 14:28:27 -07003664 * Whether lock pattern will vibrate as user enters (0 = false, 1 =
3665 * true)
3666 *
3667 * @deprecated Starting in {@link VERSION_CODES#JELLY_BEAN_MR1} the
3668 * lockscreen uses
3669 * {@link Settings.System#HAPTIC_FEEDBACK_ENABLED}.
Amith Yamasani156c4352010-03-05 17:10:03 -08003670 */
Jeff Sharkey5ed9d682012-10-10 14:28:27 -07003671 @Deprecated
3672 public static final String
3673 LOCK_PATTERN_TACTILE_FEEDBACK_ENABLED = "lock_pattern_tactile_feedback_enabled";
Amith Yamasani156c4352010-03-05 17:10:03 -08003674
3675 /**
Jim Millerbc4603b2010-08-30 21:21:34 -07003676 * This preference allows the device to be locked given time after screen goes off,
3677 * subject to current DeviceAdmin policy limits.
3678 * @hide
3679 */
3680 public static final String LOCK_SCREEN_LOCK_AFTER_TIMEOUT = "lock_screen_lock_after_timeout";
3681
3682
3683 /**
John Spurlock5f050e52012-10-27 10:44:19 -04003684 * This preference contains the string that shows for owner info on LockScreen.
Jim Miller253a5ef2010-10-13 20:57:29 -07003685 * @hide
Jim Miller187ec582013-04-15 18:27:54 -07003686 * @deprecated
Jim Miller253a5ef2010-10-13 20:57:29 -07003687 */
3688 public static final String LOCK_SCREEN_OWNER_INFO = "lock_screen_owner_info";
3689
3690 /**
John Spurlock5f050e52012-10-27 10:44:19 -04003691 * Ids of the user-selected appwidgets on the lockscreen (comma-delimited).
Jim Millerf229e4d2012-09-12 20:32:50 -07003692 * @hide
3693 */
Michael Jurkaaa2859a2012-10-24 12:46:49 -07003694 public static final String LOCK_SCREEN_APPWIDGET_IDS =
3695 "lock_screen_appwidget_ids";
Jim Millerf229e4d2012-09-12 20:32:50 -07003696
3697 /**
Jim Miller08fa40c2014-04-29 18:18:47 -07003698 * List of enrolled fingerprint identifiers (comma-delimited).
3699 * @hide
3700 */
3701 public static final String USER_FINGERPRINT_IDS = "user_fingerprint_ids";
3702
3703 /**
Jim Miller51117262012-11-04 17:58:09 -08003704 * Id of the appwidget shown on the lock screen when appwidgets are disabled.
3705 * @hide
3706 */
3707 public static final String LOCK_SCREEN_FALLBACK_APPWIDGET_ID =
3708 "lock_screen_fallback_appwidget_id";
3709
3710 /**
John Spurlock5f050e52012-10-27 10:44:19 -04003711 * Index of the lockscreen appwidget to restore, -1 if none.
3712 * @hide
3713 */
3714 public static final String LOCK_SCREEN_STICKY_APPWIDGET =
3715 "lock_screen_sticky_appwidget";
3716
3717 /**
3718 * This preference enables showing the owner info on LockScreen.
Jim Miller253a5ef2010-10-13 20:57:29 -07003719 * @hide
Jim Miller187ec582013-04-15 18:27:54 -07003720 * @deprecated
Jim Miller253a5ef2010-10-13 20:57:29 -07003721 */
3722 public static final String LOCK_SCREEN_OWNER_INFO_ENABLED =
3723 "lock_screen_owner_info_enabled";
3724
3725 /**
Dan Sandler5d7c3cc2014-02-18 17:35:15 -05003726 * When set by a user, allows notifications to be shown atop a securely locked screen
3727 * in their full "private" form (same as when the device is unlocked).
Dan Sandlerfd16d562014-02-13 18:43:31 -08003728 * @hide
3729 */
3730 public static final String LOCK_SCREEN_ALLOW_PRIVATE_NOTIFICATIONS =
3731 "lock_screen_allow_private_notifications";
3732
3733 /**
Chris Wrencd8f4f72014-08-27 18:48:13 -04003734 * Set by the system to track if the user needs to see the call to action for
3735 * the lockscreen notification policy.
3736 * @hide
3737 */
3738 public static final String SHOW_NOTE_ABOUT_NOTIFICATION_HIDING =
3739 "show_note_about_notification_hiding";
3740
3741 /**
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08003742 * The Logging ID (a unique 64-bit value) as a hex string.
3743 * Used as a pseudonymous identifier for logging.
3744 * @deprecated This identifier is poorly initialized and has
3745 * many collisions. It should not be used.
3746 */
3747 @Deprecated
3748 public static final String LOGGING_ID = "logging_id";
3749
3750 /**
Christopher Tate06efb532012-08-24 15:29:27 -07003751 * @deprecated Use {@link android.provider.Settings.Global#NETWORK_PREFERENCE} instead
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08003752 */
Christopher Tate06efb532012-08-24 15:29:27 -07003753 @Deprecated
3754 public static final String NETWORK_PREFERENCE = Global.NETWORK_PREFERENCE;
Jaikumar Ganesh9bfbfbd2009-05-15 12:05:56 -07003755
3756 /**
Dan Egnor1c9131c2010-02-13 10:38:55 -08003757 * No longer supported.
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08003758 */
3759 public static final String PARENTAL_CONTROL_ENABLED = "parental_control_enabled";
Jaikumar Ganesh9bfbfbd2009-05-15 12:05:56 -07003760
3761 /**
Dan Egnor1c9131c2010-02-13 10:38:55 -08003762 * No longer supported.
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08003763 */
3764 public static final String PARENTAL_CONTROL_LAST_UPDATE = "parental_control_last_update";
Jaikumar Ganesh9bfbfbd2009-05-15 12:05:56 -07003765
3766 /**
Dan Egnor1c9131c2010-02-13 10:38:55 -08003767 * No longer supported.
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08003768 */
3769 public static final String PARENTAL_CONTROL_REDIRECT_URL = "parental_control_redirect_url";
Jaikumar Ganesh9bfbfbd2009-05-15 12:05:56 -07003770
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08003771 /**
3772 * Settings classname to launch when Settings is clicked from All
3773 * Applications. Needed because of user testing between the old
3774 * and new Settings apps.
3775 */
3776 // TODO: 881807
3777 public static final String SETTINGS_CLASSNAME = "settings_classname";
Jaikumar Ganesh9bfbfbd2009-05-15 12:05:56 -07003778
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08003779 /**
Christopher Tate06efb532012-08-24 15:29:27 -07003780 * @deprecated Use {@link android.provider.Settings.Global#USB_MASS_STORAGE_ENABLED} instead
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08003781 */
Christopher Tate06efb532012-08-24 15:29:27 -07003782 @Deprecated
3783 public static final String USB_MASS_STORAGE_ENABLED = Global.USB_MASS_STORAGE_ENABLED;
Jaikumar Ganesh9bfbfbd2009-05-15 12:05:56 -07003784
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08003785 /**
Christopher Tate06efb532012-08-24 15:29:27 -07003786 * @deprecated Use {@link android.provider.Settings.Global#USE_GOOGLE_MAIL} instead
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08003787 */
Christopher Tate06efb532012-08-24 15:29:27 -07003788 @Deprecated
3789 public static final String USE_GOOGLE_MAIL = Global.USE_GOOGLE_MAIL;
Jaikumar Ganesh9bfbfbd2009-05-15 12:05:56 -07003790
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08003791 /**
svetoslavganov75986cf2009-05-14 22:28:01 -07003792 * If accessibility is enabled.
3793 */
3794 public static final String ACCESSIBILITY_ENABLED = "accessibility_enabled";
3795
3796 /**
Svetoslav Ganov00aabf72011-07-21 11:35:03 -07003797 * If touch exploration is enabled.
Svetoslav Ganov35bfede2011-07-14 17:57:06 -07003798 */
Svetoslav Ganov00aabf72011-07-21 11:35:03 -07003799 public static final String TOUCH_EXPLORATION_ENABLED = "touch_exploration_enabled";
Svetoslav Ganov35bfede2011-07-14 17:57:06 -07003800
3801 /**
svetoslavganov75986cf2009-05-14 22:28:01 -07003802 * List of the enabled accessibility providers.
3803 */
3804 public static final String ENABLED_ACCESSIBILITY_SERVICES =
3805 "enabled_accessibility_services";
3806
3807 /**
Svetoslav Ganov7befb7d2012-09-27 16:49:23 -07003808 * List of the accessibility services to which the user has granted
Svetoslav Ganov9a4c5cd2012-05-30 14:06:32 -07003809 * permission to put the device into touch exploration mode.
3810 *
3811 * @hide
3812 */
3813 public static final String TOUCH_EXPLORATION_GRANTED_ACCESSIBILITY_SERVICES =
3814 "touch_exploration_granted_accessibility_services";
3815
3816 /**
Svetoslav Ganov55f937a2011-12-05 11:42:07 -08003817 * Whether to speak passwords while in accessibility mode.
3818 */
3819 public static final String ACCESSIBILITY_SPEAK_PASSWORD = "speak_password";
3820
3821 /**
Chris Craikcce47eb2014-07-16 15:12:15 -07003822 * Whether to draw text with high contrast while in accessibility mode.
3823 *
3824 * @hide
3825 */
3826 public static final String ACCESSIBILITY_HIGH_TEXT_CONTRAST_ENABLED =
3827 "high_text_contrast_enabled";
3828
3829 /**
Svetoslav Ganov3ca5a742011-12-06 15:24:37 -08003830 * If injection of accessibility enhancing JavaScript screen-reader
Svetoslav Ganov585f13f8d2010-08-10 07:59:15 -07003831 * is enabled.
3832 * <p>
Svetoslav Ganov3ca5a742011-12-06 15:24:37 -08003833 * Note: The JavaScript based screen-reader is served by the
Svetoslav Ganov585f13f8d2010-08-10 07:59:15 -07003834 * Google infrastructure and enable users with disabilities to
Svetoslav Ganov7befb7d2012-09-27 16:49:23 -07003835 * efficiently navigate in and explore web content.
Svetoslav Ganov585f13f8d2010-08-10 07:59:15 -07003836 * </p>
3837 * <p>
3838 * This property represents a boolean value.
3839 * </p>
3840 * @hide
3841 */
3842 public static final String ACCESSIBILITY_SCRIPT_INJECTION =
3843 "accessibility_script_injection";
3844
3845 /**
Svetoslav Ganov3ca5a742011-12-06 15:24:37 -08003846 * The URL for the injected JavaScript based screen-reader used
Svetoslav Ganov7befb7d2012-09-27 16:49:23 -07003847 * for providing accessibility of content in WebView.
Svetoslav Ganov3ca5a742011-12-06 15:24:37 -08003848 * <p>
3849 * Note: The JavaScript based screen-reader is served by the
3850 * Google infrastructure and enable users with disabilities to
3851 * efficiently navigate in and explore web content.
3852 * </p>
3853 * <p>
3854 * This property represents a string value.
3855 * </p>
3856 * @hide
3857 */
3858 public static final String ACCESSIBILITY_SCREEN_READER_URL =
3859 "accessibility_script_injection_url";
3860
3861 /**
Svetoslav Ganov585f13f8d2010-08-10 07:59:15 -07003862 * Key bindings for navigation in built-in accessibility support for web content.
3863 * <p>
3864 * Note: These key bindings are for the built-in accessibility navigation for
3865 * web content which is used as a fall back solution if JavaScript in a WebView
3866 * is not enabled or the user has not opted-in script injection from Google.
3867 * </p>
3868 * <p>
3869 * The bindings are separated by semi-colon. A binding is a mapping from
3870 * a key to a sequence of actions (for more details look at
3871 * android.webkit.AccessibilityInjector). A key is represented as the hexademical
3872 * string representation of an integer obtained from a meta state (optional) shifted
3873 * sixteen times left and bitwise ored with a key code. An action is represented
3874 * as a hexademical string representation of an integer where the first two digits
3875 * are navigation action index, the second, the third, and the fourth digit pairs
3876 * represent the action arguments. The separate actions in a binding are colon
3877 * separated. The key and the action sequence it maps to are separated by equals.
3878 * </p>
3879 * <p>
3880 * For example, the binding below maps the DPAD right button to traverse the
3881 * current navigation axis once without firing an accessibility event and to
3882 * perform the same traversal again but to fire an event:
3883 * <code>
3884 * 0x16=0x01000100:0x01000101;
3885 * </code>
3886 * </p>
3887 * <p>
3888 * The goal of this binding is to enable dynamic rebinding of keys to
3889 * navigation actions for web content without requiring a framework change.
3890 * </p>
3891 * <p>
3892 * This property represents a string value.
3893 * </p>
3894 * @hide
3895 */
3896 public static final String ACCESSIBILITY_WEB_CONTENT_KEY_BINDINGS =
3897 "accessibility_web_content_key_bindings";
3898
3899 /**
Svetoslav Ganov1cf70bb2012-08-06 10:53:34 -07003900 * Setting that specifies whether the display magnification is enabled.
3901 * Display magnifications allows the user to zoom in the display content
3902 * and is targeted to low vision users. The current magnification scale
3903 * is controlled by {@link #ACCESSIBILITY_DISPLAY_MAGNIFICATION_SCALE}.
3904 *
3905 * @hide
3906 */
3907 public static final String ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED =
3908 "accessibility_display_magnification_enabled";
3909
3910 /**
3911 * Setting that specifies what the display magnification scale is.
3912 * Display magnifications allows the user to zoom in the display
3913 * content and is targeted to low vision users. Whether a display
3914 * magnification is performed is controlled by
3915 * {@link #ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED}
3916 *
3917 * @hide
3918 */
3919 public static final String ACCESSIBILITY_DISPLAY_MAGNIFICATION_SCALE =
3920 "accessibility_display_magnification_scale";
3921
3922 /**
3923 * Setting that specifies whether the display magnification should be
3924 * automatically updated. If this fearture is enabled the system will
3925 * exit magnification mode or pan the viewport when a context change
3926 * occurs. For example, on staring a new activity or rotating the screen,
3927 * the system may zoom out so the user can see the new context he is in.
3928 * Another example is on showing a window that is not visible in the
3929 * magnified viewport the system may pan the viewport to make the window
3930 * the has popped up so the user knows that the context has changed.
3931 * Whether a screen magnification is performed is controlled by
3932 * {@link #ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED}
3933 *
3934 * @hide
3935 */
3936 public static final String ACCESSIBILITY_DISPLAY_MAGNIFICATION_AUTO_UPDATE =
3937 "accessibility_display_magnification_auto_update";
3938
3939 /**
Alan Viveretteef793802013-07-23 14:15:28 -07003940 * Setting that specifies whether timed text (captions) should be
3941 * displayed in video content. Text display properties are controlled by
3942 * the following settings:
3943 * <ul>
3944 * <li>{@link #ACCESSIBILITY_CAPTIONING_LOCALE}
3945 * <li>{@link #ACCESSIBILITY_CAPTIONING_BACKGROUND_COLOR}
3946 * <li>{@link #ACCESSIBILITY_CAPTIONING_FOREGROUND_COLOR}
3947 * <li>{@link #ACCESSIBILITY_CAPTIONING_EDGE_COLOR}
3948 * <li>{@link #ACCESSIBILITY_CAPTIONING_EDGE_TYPE}
3949 * <li>{@link #ACCESSIBILITY_CAPTIONING_TYPEFACE}
Alan Viverette69ce69b2013-08-29 12:23:48 -07003950 * <li>{@link #ACCESSIBILITY_CAPTIONING_FONT_SCALE}
Alan Viveretteef793802013-07-23 14:15:28 -07003951 * </ul>
3952 *
3953 * @hide
3954 */
3955 public static final String ACCESSIBILITY_CAPTIONING_ENABLED =
3956 "accessibility_captioning_enabled";
3957
3958 /**
3959 * Setting that specifies the language for captions as a locale string,
3960 * e.g. en_US.
3961 *
3962 * @see java.util.Locale#toString
3963 * @hide
3964 */
3965 public static final String ACCESSIBILITY_CAPTIONING_LOCALE =
3966 "accessibility_captioning_locale";
3967
3968 /**
Alan Viverette43a1e3d2013-08-02 16:45:03 -07003969 * Integer property that specifies the preset style for captions, one
3970 * of:
3971 * <ul>
Alan Viverette69ce69b2013-08-29 12:23:48 -07003972 * <li>{@link android.view.accessibility.CaptioningManager.CaptionStyle#PRESET_CUSTOM}
3973 * <li>a valid index of {@link android.view.accessibility.CaptioningManager.CaptionStyle#PRESETS}
Alan Viverette43a1e3d2013-08-02 16:45:03 -07003974 * </ul>
3975 *
3976 * @see java.util.Locale#toString
3977 * @hide
3978 */
3979 public static final String ACCESSIBILITY_CAPTIONING_PRESET =
3980 "accessibility_captioning_preset";
3981
3982 /**
Alan Viveretteef793802013-07-23 14:15:28 -07003983 * Integer property that specifes the background color for captions as a
3984 * packed 32-bit color.
3985 *
3986 * @see android.graphics.Color#argb
3987 * @hide
3988 */
3989 public static final String ACCESSIBILITY_CAPTIONING_BACKGROUND_COLOR =
3990 "accessibility_captioning_background_color";
3991
3992 /**
3993 * Integer property that specifes the foreground color for captions as a
3994 * packed 32-bit color.
3995 *
3996 * @see android.graphics.Color#argb
3997 * @hide
3998 */
3999 public static final String ACCESSIBILITY_CAPTIONING_FOREGROUND_COLOR =
4000 "accessibility_captioning_foreground_color";
4001
4002 /**
4003 * Integer property that specifes the edge type for captions, one of:
4004 * <ul>
Alan Viverette69ce69b2013-08-29 12:23:48 -07004005 * <li>{@link android.view.accessibility.CaptioningManager.CaptionStyle#EDGE_TYPE_NONE}
4006 * <li>{@link android.view.accessibility.CaptioningManager.CaptionStyle#EDGE_TYPE_OUTLINE}
4007 * <li>{@link android.view.accessibility.CaptioningManager.CaptionStyle#EDGE_TYPE_DROP_SHADOW}
Alan Viveretteef793802013-07-23 14:15:28 -07004008 * </ul>
4009 *
4010 * @see #ACCESSIBILITY_CAPTIONING_EDGE_COLOR
4011 * @hide
4012 */
4013 public static final String ACCESSIBILITY_CAPTIONING_EDGE_TYPE =
4014 "accessibility_captioning_edge_type";
4015
4016 /**
4017 * Integer property that specifes the edge color for captions as a
4018 * packed 32-bit color.
4019 *
4020 * @see #ACCESSIBILITY_CAPTIONING_EDGE_TYPE
4021 * @see android.graphics.Color#argb
4022 * @hide
4023 */
4024 public static final String ACCESSIBILITY_CAPTIONING_EDGE_COLOR =
4025 "accessibility_captioning_edge_color";
4026
4027 /**
Alan Viverette55d70622013-12-11 15:22:14 -08004028 * Integer property that specifes the window color for captions as a
4029 * packed 32-bit color.
4030 *
4031 * @see android.graphics.Color#argb
4032 * @hide
4033 */
4034 public static final String ACCESSIBILITY_CAPTIONING_WINDOW_COLOR =
4035 "accessibility_captioning_window_color";
4036
4037 /**
Alan Viveretteef793802013-07-23 14:15:28 -07004038 * String property that specifies the typeface for captions, one of:
4039 * <ul>
4040 * <li>DEFAULT
4041 * <li>MONOSPACE
4042 * <li>SANS_SERIF
4043 * <li>SERIF
4044 * </ul>
4045 *
4046 * @see android.graphics.Typeface
4047 * @hide
4048 */
4049 public static final String ACCESSIBILITY_CAPTIONING_TYPEFACE =
4050 "accessibility_captioning_typeface";
4051
4052 /**
Alan Viverette69ce69b2013-08-29 12:23:48 -07004053 * Floating point property that specifies font scaling for captions.
Alan Viveretteef793802013-07-23 14:15:28 -07004054 *
4055 * @hide
4056 */
Alan Viverette69ce69b2013-08-29 12:23:48 -07004057 public static final String ACCESSIBILITY_CAPTIONING_FONT_SCALE =
4058 "accessibility_captioning_font_scale";
Alan Viveretteef793802013-07-23 14:15:28 -07004059
4060 /**
Alan Viverette410d4e32013-09-30 15:37:38 -07004061 * Setting that specifies whether display color inversion is enabled.
Alan Viverette410d4e32013-09-30 15:37:38 -07004062 */
4063 public static final String ACCESSIBILITY_DISPLAY_INVERSION_ENABLED =
4064 "accessibility_display_inversion_enabled";
4065
4066 /**
Alan Viverette410d4e32013-09-30 15:37:38 -07004067 * Setting that specifies whether display color space adjustment is
4068 * enabled.
4069 *
4070 * @hide
4071 */
4072 public static final String ACCESSIBILITY_DISPLAY_DALTONIZER_ENABLED =
4073 "accessibility_display_daltonizer_enabled";
4074
4075 /**
4076 * Integer property that specifies the type of color space adjustment to
4077 * perform. Valid values are defined in AccessibilityManager.
4078 *
4079 * @hide
4080 */
4081 public static final String ACCESSIBILITY_DISPLAY_DALTONIZER =
4082 "accessibility_display_daltonizer";
4083
4084 /**
Svetoslav Ganov54d068e2011-03-02 12:58:40 -08004085 * The timout for considering a press to be a long press in milliseconds.
4086 * @hide
4087 */
4088 public static final String LONG_PRESS_TIMEOUT = "long_press_timeout";
4089
4090 /**
Svetoslav Ganov6bd20bc2013-09-02 15:24:45 -07004091 * List of the enabled print services.
Svetoslav Ganov4b9a4d12013-06-11 15:20:06 -07004092 * @hide
4093 */
4094 public static final String ENABLED_PRINT_SERVICES =
4095 "enabled_print_services";
4096
4097 /**
Svetoslav Ganov6bd20bc2013-09-02 15:24:45 -07004098 * List of the system print services we enabled on first boot. On
4099 * first boot we enable all system, i.e. bundled print services,
4100 * once, so they work out-of-the-box.
4101 * @hide
4102 */
4103 public static final String ENABLED_ON_FIRST_BOOT_SYSTEM_PRINT_SERVICES =
4104 "enabled_on_first_boot_system_print_services";
4105
4106 /**
Jean-Michel Trivif62ba452009-06-04 14:55:24 -07004107 * Setting to always use the default text-to-speech settings regardless
4108 * of the application settings.
4109 * 1 = override application settings,
4110 * 0 = use application settings (if specified).
Narayan Kamath6d632962011-08-24 11:51:37 +01004111 *
4112 * @deprecated The value of this setting is no longer respected by
4113 * the framework text to speech APIs as of the Ice Cream Sandwich release.
Jean-Michel Trivif62ba452009-06-04 14:55:24 -07004114 */
Narayan Kamath6d632962011-08-24 11:51:37 +01004115 @Deprecated
Jean-Michel Trivif62ba452009-06-04 14:55:24 -07004116 public static final String TTS_USE_DEFAULTS = "tts_use_defaults";
4117
4118 /**
4119 * Default text-to-speech engine speech rate. 100 = 1x
4120 */
4121 public static final String TTS_DEFAULT_RATE = "tts_default_rate";
4122
4123 /**
4124 * Default text-to-speech engine pitch. 100 = 1x
4125 */
4126 public static final String TTS_DEFAULT_PITCH = "tts_default_pitch";
4127
4128 /**
4129 * Default text-to-speech engine.
4130 */
4131 public static final String TTS_DEFAULT_SYNTH = "tts_default_synth";
4132
4133 /**
Jean-Michel Trivif4782672009-06-09 16:22:48 -07004134 * Default text-to-speech language.
Narayan Kamath6d632962011-08-24 11:51:37 +01004135 *
4136 * @deprecated this setting is no longer in use, as of the Ice Cream
4137 * Sandwich release. Apps should never need to read this setting directly,
4138 * instead can query the TextToSpeech framework classes for the default
4139 * locale. {@link TextToSpeech#getLanguage()}.
Jean-Michel Trivif4782672009-06-09 16:22:48 -07004140 */
Narayan Kamath6d632962011-08-24 11:51:37 +01004141 @Deprecated
Jean-Michel Trivif4782672009-06-09 16:22:48 -07004142 public static final String TTS_DEFAULT_LANG = "tts_default_lang";
4143
4144 /**
Jean-Michel Trivia6fcc952009-06-19 14:06:01 -07004145 * Default text-to-speech country.
Narayan Kamath6d632962011-08-24 11:51:37 +01004146 *
4147 * @deprecated this setting is no longer in use, as of the Ice Cream
4148 * Sandwich release. Apps should never need to read this setting directly,
4149 * instead can query the TextToSpeech framework classes for the default
4150 * locale. {@link TextToSpeech#getLanguage()}.
Jean-Michel Trivia6fcc952009-06-19 14:06:01 -07004151 */
Narayan Kamath6d632962011-08-24 11:51:37 +01004152 @Deprecated
Jean-Michel Trivia6fcc952009-06-19 14:06:01 -07004153 public static final String TTS_DEFAULT_COUNTRY = "tts_default_country";
4154
4155 /**
4156 * Default text-to-speech locale variant.
Narayan Kamath6d632962011-08-24 11:51:37 +01004157 *
4158 * @deprecated this setting is no longer in use, as of the Ice Cream
4159 * Sandwich release. Apps should never need to read this setting directly,
4160 * instead can query the TextToSpeech framework classes for the
4161 * locale that is in use {@link TextToSpeech#getLanguage()}.
Jean-Michel Trivia6fcc952009-06-19 14:06:01 -07004162 */
Narayan Kamath6d632962011-08-24 11:51:37 +01004163 @Deprecated
Jean-Michel Trivia6fcc952009-06-19 14:06:01 -07004164 public static final String TTS_DEFAULT_VARIANT = "tts_default_variant";
4165
4166 /**
Narayan Kamathe5b8c4d2011-08-22 15:37:47 +01004167 * Stores the default tts locales on a per engine basis. Stored as
4168 * a comma seperated list of values, each value being of the form
4169 * {@code engine_name:locale} for example,
Narayan Kamath6d632962011-08-24 11:51:37 +01004170 * {@code com.foo.ttsengine:eng-USA,com.bar.ttsengine:esp-ESP}. This
4171 * supersedes {@link #TTS_DEFAULT_LANG}, {@link #TTS_DEFAULT_COUNTRY} and
4172 * {@link #TTS_DEFAULT_VARIANT}. Apps should never need to read this
4173 * setting directly, and can query the TextToSpeech framework classes
4174 * for the locale that is in use.
Narayan Kamathe5b8c4d2011-08-22 15:37:47 +01004175 *
4176 * @hide
4177 */
4178 public static final String TTS_DEFAULT_LOCALE = "tts_default_locale";
4179
4180 /**
Charles Chenceffa152010-03-16 21:18:10 -07004181 * Space delimited list of plugin packages that are enabled.
4182 */
4183 public static final String TTS_ENABLED_PLUGINS = "tts_enabled_plugins";
4184
4185 /**
Christopher Tate6f5a9a92012-09-14 17:24:28 -07004186 * @deprecated Use {@link android.provider.Settings.Global#WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON}
4187 * instead.
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08004188 */
Christopher Tate6f5a9a92012-09-14 17:24:28 -07004189 @Deprecated
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08004190 public static final String WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON =
Christopher Tate6f5a9a92012-09-14 17:24:28 -07004191 Global.WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON;
Jaikumar Ganesh9bfbfbd2009-05-15 12:05:56 -07004192
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08004193 /**
Christopher Tate6f5a9a92012-09-14 17:24:28 -07004194 * @deprecated Use {@link android.provider.Settings.Global#WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY}
4195 * instead.
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08004196 */
Christopher Tate6f5a9a92012-09-14 17:24:28 -07004197 @Deprecated
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08004198 public static final String WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY =
Christopher Tate6f5a9a92012-09-14 17:24:28 -07004199 Global.WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY;
Jaikumar Ganesh9bfbfbd2009-05-15 12:05:56 -07004200
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08004201 /**
Christopher Tate6f5a9a92012-09-14 17:24:28 -07004202 * @deprecated Use {@link android.provider.Settings.Global#WIFI_NUM_OPEN_NETWORKS_KEPT}
4203 * instead.
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08004204 */
Christopher Tate6f5a9a92012-09-14 17:24:28 -07004205 @Deprecated
4206 public static final String WIFI_NUM_OPEN_NETWORKS_KEPT =
4207 Global.WIFI_NUM_OPEN_NETWORKS_KEPT;
Jaikumar Ganesh9bfbfbd2009-05-15 12:05:56 -07004208
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08004209 /**
Christopher Tate6f5a9a92012-09-14 17:24:28 -07004210 * @deprecated Use {@link android.provider.Settings.Global#WIFI_ON}
4211 * instead.
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08004212 */
Christopher Tate6f5a9a92012-09-14 17:24:28 -07004213 @Deprecated
4214 public static final String WIFI_ON = Global.WIFI_ON;
Jaikumar Ganesh9bfbfbd2009-05-15 12:05:56 -07004215
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08004216 /**
4217 * The acceptable packet loss percentage (range 0 - 100) before trying
4218 * another AP on the same network.
Jeff Brownbf6f6f92012-09-25 15:03:20 -07004219 * @deprecated This setting is not used.
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08004220 */
Isaac Levyd7b3e6a2011-07-20 18:15:30 -07004221 @Deprecated
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08004222 public static final String WIFI_WATCHDOG_ACCEPTABLE_PACKET_LOSS_PERCENTAGE =
4223 "wifi_watchdog_acceptable_packet_loss_percentage";
Jaikumar Ganesh9bfbfbd2009-05-15 12:05:56 -07004224
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08004225 /**
4226 * The number of access points required for a network in order for the
4227 * watchdog to monitor it.
Jeff Brownbf6f6f92012-09-25 15:03:20 -07004228 * @deprecated This setting is not used.
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08004229 */
Isaac Levyd7b3e6a2011-07-20 18:15:30 -07004230 @Deprecated
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08004231 public static final String WIFI_WATCHDOG_AP_COUNT = "wifi_watchdog_ap_count";
Jaikumar Ganesh9bfbfbd2009-05-15 12:05:56 -07004232
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08004233 /**
4234 * The delay between background checks.
Jeff Brownbf6f6f92012-09-25 15:03:20 -07004235 * @deprecated This setting is not used.
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08004236 */
Isaac Levyd7b3e6a2011-07-20 18:15:30 -07004237 @Deprecated
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08004238 public static final String WIFI_WATCHDOG_BACKGROUND_CHECK_DELAY_MS =
4239 "wifi_watchdog_background_check_delay_ms";
Jaikumar Ganesh9bfbfbd2009-05-15 12:05:56 -07004240
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08004241 /**
4242 * Whether the Wi-Fi watchdog is enabled for background checking even
4243 * after it thinks the user has connected to a good access point.
Jeff Brownbf6f6f92012-09-25 15:03:20 -07004244 * @deprecated This setting is not used.
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08004245 */
Isaac Levyd7b3e6a2011-07-20 18:15:30 -07004246 @Deprecated
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08004247 public static final String WIFI_WATCHDOG_BACKGROUND_CHECK_ENABLED =
4248 "wifi_watchdog_background_check_enabled";
Jaikumar Ganesh9bfbfbd2009-05-15 12:05:56 -07004249
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08004250 /**
4251 * The timeout for a background ping
Jeff Brownbf6f6f92012-09-25 15:03:20 -07004252 * @deprecated This setting is not used.
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08004253 */
Isaac Levyd7b3e6a2011-07-20 18:15:30 -07004254 @Deprecated
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08004255 public static final String WIFI_WATCHDOG_BACKGROUND_CHECK_TIMEOUT_MS =
4256 "wifi_watchdog_background_check_timeout_ms";
Jaikumar Ganesh9bfbfbd2009-05-15 12:05:56 -07004257
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08004258 /**
4259 * The number of initial pings to perform that *may* be ignored if they
4260 * fail. Again, if these fail, they will *not* be used in packet loss
4261 * calculation. For example, one network always seemed to time out for
4262 * the first couple pings, so this is set to 3 by default.
Jeff Brownbf6f6f92012-09-25 15:03:20 -07004263 * @deprecated This setting is not used.
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08004264 */
Isaac Levyd7b3e6a2011-07-20 18:15:30 -07004265 @Deprecated
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08004266 public static final String WIFI_WATCHDOG_INITIAL_IGNORED_PING_COUNT =
4267 "wifi_watchdog_initial_ignored_ping_count";
Jaikumar Ganesh9bfbfbd2009-05-15 12:05:56 -07004268
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08004269 /**
4270 * The maximum number of access points (per network) to attempt to test.
4271 * If this number is reached, the watchdog will no longer monitor the
4272 * initial connection state for the network. This is a safeguard for
4273 * networks containing multiple APs whose DNS does not respond to pings.
Jeff Brownbf6f6f92012-09-25 15:03:20 -07004274 * @deprecated This setting is not used.
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08004275 */
Isaac Levyd7b3e6a2011-07-20 18:15:30 -07004276 @Deprecated
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08004277 public static final String WIFI_WATCHDOG_MAX_AP_CHECKS = "wifi_watchdog_max_ap_checks";
Jaikumar Ganesh9bfbfbd2009-05-15 12:05:56 -07004278
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08004279 /**
Jeff Sharkeybdfce2e2012-09-26 15:54:06 -07004280 * @deprecated Use {@link android.provider.Settings.Global#WIFI_WATCHDOG_ON} instead
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08004281 */
Jeff Sharkeybdfce2e2012-09-26 15:54:06 -07004282 @Deprecated
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08004283 public static final String WIFI_WATCHDOG_ON = "wifi_watchdog_on";
4284
4285 /**
4286 * A comma-separated list of SSIDs for which the Wi-Fi watchdog should be enabled.
Jeff Brownbf6f6f92012-09-25 15:03:20 -07004287 * @deprecated This setting is not used.
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08004288 */
Isaac Levyd7b3e6a2011-07-20 18:15:30 -07004289 @Deprecated
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08004290 public static final String WIFI_WATCHDOG_WATCH_LIST = "wifi_watchdog_watch_list";
4291
4292 /**
4293 * The number of pings to test if an access point is a good connection.
Jeff Brownbf6f6f92012-09-25 15:03:20 -07004294 * @deprecated This setting is not used.
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08004295 */
Isaac Levyd7b3e6a2011-07-20 18:15:30 -07004296 @Deprecated
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08004297 public static final String WIFI_WATCHDOG_PING_COUNT = "wifi_watchdog_ping_count";
Jaikumar Ganesh9bfbfbd2009-05-15 12:05:56 -07004298
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08004299 /**
4300 * The delay between pings.
Jeff Brownbf6f6f92012-09-25 15:03:20 -07004301 * @deprecated This setting is not used.
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08004302 */
Isaac Levyd7b3e6a2011-07-20 18:15:30 -07004303 @Deprecated
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08004304 public static final String WIFI_WATCHDOG_PING_DELAY_MS = "wifi_watchdog_ping_delay_ms";
Jaikumar Ganesh9bfbfbd2009-05-15 12:05:56 -07004305
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08004306 /**
4307 * The timeout per ping.
Jeff Brownbf6f6f92012-09-25 15:03:20 -07004308 * @deprecated This setting is not used.
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08004309 */
Isaac Levyd7b3e6a2011-07-20 18:15:30 -07004310 @Deprecated
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08004311 public static final String WIFI_WATCHDOG_PING_TIMEOUT_MS = "wifi_watchdog_ping_timeout_ms";
Jaikumar Ganesh9bfbfbd2009-05-15 12:05:56 -07004312
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08004313 /**
Christopher Tate06efb532012-08-24 15:29:27 -07004314 * @deprecated Use
4315 * {@link android.provider.Settings.Global#WIFI_MAX_DHCP_RETRY_COUNT} instead
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08004316 */
Christopher Tate06efb532012-08-24 15:29:27 -07004317 @Deprecated
4318 public static final String WIFI_MAX_DHCP_RETRY_COUNT = Global.WIFI_MAX_DHCP_RETRY_COUNT;
Jaikumar Ganesh9bfbfbd2009-05-15 12:05:56 -07004319
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08004320 /**
Jeff Brownbf6f6f92012-09-25 15:03:20 -07004321 * @deprecated Use
4322 * {@link android.provider.Settings.Global#WIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MS} instead
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08004323 */
Jeff Sharkeybdfce2e2012-09-26 15:54:06 -07004324 @Deprecated
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08004325 public static final String WIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MS =
Jeff Brownbf6f6f92012-09-25 15:03:20 -07004326 Global.WIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MS;
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08004327
4328 /**
Jeff Sharkey625239a2012-09-26 22:03:49 -07004329 * Whether background data usage is allowed.
4330 *
4331 * @deprecated As of {@link VERSION_CODES#ICE_CREAM_SANDWICH},
4332 * availability of background data depends on several
4333 * combined factors. When background data is unavailable,
4334 * {@link ConnectivityManager#getActiveNetworkInfo()} will
4335 * now appear disconnected.
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08004336 */
Jeff Sharkey3a844fc2011-08-16 14:37:57 -07004337 @Deprecated
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08004338 public static final String BACKGROUND_DATA = "background_data";
Wink Saville04e71b32009-04-02 11:00:54 -07004339
4340 /**
Bjorn Bringert98bfa392010-03-24 10:59:48 +00004341 * Origins for which browsers should allow geolocation by default.
4342 * The value is a space-separated list of origins.
4343 */
4344 public static final String ALLOWED_GEOLOCATION_ORIGINS
4345 = "allowed_geolocation_origins";
4346
4347 /**
Wink Savillee9b06d72009-05-18 21:47:50 -07004348 * The preferred TTY mode 0 = TTy Off, CDMA default
4349 * 1 = TTY Full
4350 * 2 = TTY HCO
4351 * 3 = TTY VCO
4352 * @hide
4353 */
4354 public static final String PREFERRED_TTY_MODE =
4355 "preferred_tty_mode";
4356
Wink Saville04e71b32009-04-02 11:00:54 -07004357 /**
Wink Saville04e71b32009-04-02 11:00:54 -07004358 * Whether the enhanced voice privacy mode is enabled.
4359 * 0 = normal voice privacy
4360 * 1 = enhanced voice privacy
4361 * @hide
4362 */
4363 public static final String ENHANCED_VOICE_PRIVACY_ENABLED = "enhanced_voice_privacy_enabled";
4364
4365 /**
4366 * Whether the TTY mode mode is enabled.
4367 * 0 = disabled
4368 * 1 = enabled
4369 * @hide
4370 */
4371 public static final String TTY_MODE_ENABLED = "tty_mode_enabled";
Mike Lockwoodbd2a7122009-04-02 23:41:33 -07004372
4373 /**
Christopher Tate8031a3d2009-07-06 16:36:05 -07004374 * Controls whether settings backup is enabled.
Dianne Hackborncf098292009-07-01 19:55:20 -07004375 * Type: int ( 0 = disabled, 1 = enabled )
4376 * @hide
4377 */
4378 public static final String BACKUP_ENABLED = "backup_enabled";
4379
4380 /**
Christopher Tatecce9da52010-02-03 15:11:15 -08004381 * Controls whether application data is automatically restored from backup
4382 * at install time.
4383 * Type: int ( 0 = disabled, 1 = enabled )
4384 * @hide
4385 */
4386 public static final String BACKUP_AUTO_RESTORE = "backup_auto_restore";
4387
4388 /**
Christopher Tate8031a3d2009-07-06 16:36:05 -07004389 * Indicates whether settings backup has been fully provisioned.
4390 * Type: int ( 0 = unprovisioned, 1 = fully provisioned )
4391 * @hide
4392 */
4393 public static final String BACKUP_PROVISIONED = "backup_provisioned";
4394
4395 /**
Dianne Hackborncf098292009-07-01 19:55:20 -07004396 * Component of the transport to use for backup/restore.
4397 * @hide
4398 */
4399 public static final String BACKUP_TRANSPORT = "backup_transport";
Sanjay Jeyakumar21bf2412009-07-09 13:31:48 -07004400
Dianne Hackbornd7cd29d2009-07-01 11:22:45 -07004401 /**
4402 * Version for which the setup wizard was last shown. Bumped for
4403 * each release when there is new setup information to show.
4404 * @hide
4405 */
4406 public static final String LAST_SETUP_SHOWN = "last_setup_shown";
Dianne Hackborncf098292009-07-01 19:55:20 -07004407
4408 /**
Doug Zongker43866e02010-01-07 12:09:54 -08004409 * The interval in milliseconds after which Wi-Fi is considered idle.
4410 * When idle, it is possible for the device to be switched from Wi-Fi to
4411 * the mobile data network.
4412 * @hide
Jeff Brownbf6f6f92012-09-25 15:03:20 -07004413 * @deprecated Use {@link android.provider.Settings.Global#WIFI_IDLE_MS}
4414 * instead.
Doug Zongker43866e02010-01-07 12:09:54 -08004415 */
Christopher Tate6f5a9a92012-09-14 17:24:28 -07004416 @Deprecated
4417 public static final String WIFI_IDLE_MS = Global.WIFI_IDLE_MS;
Doug Zongker43866e02010-01-07 12:09:54 -08004418
4419 /**
Narayan Kamathee69ff42011-06-28 12:07:18 +01004420 * The global search provider chosen by the user (if multiple global
4421 * search providers are installed). This will be the provider returned
4422 * by {@link SearchManager#getGlobalSearchActivity()} if it's still
4423 * installed. This setting is stored as a flattened component name as
4424 * per {@link ComponentName#flattenToString()}.
4425 *
4426 * @hide
4427 */
4428 public static final String SEARCH_GLOBAL_SEARCH_ACTIVITY =
4429 "search_global_search_activity";
4430
4431 /**
Doug Zongkeraed8f8e2010-01-07 18:07:50 -08004432 * The number of promoted sources in GlobalSearch.
4433 * @hide
4434 */
4435 public static final String SEARCH_NUM_PROMOTED_SOURCES = "search_num_promoted_sources";
4436 /**
4437 * The maximum number of suggestions returned by GlobalSearch.
4438 * @hide
4439 */
4440 public static final String SEARCH_MAX_RESULTS_TO_DISPLAY = "search_max_results_to_display";
4441 /**
4442 * The number of suggestions GlobalSearch will ask each non-web search source for.
4443 * @hide
4444 */
4445 public static final String SEARCH_MAX_RESULTS_PER_SOURCE = "search_max_results_per_source";
4446 /**
4447 * The number of suggestions the GlobalSearch will ask the web search source for.
4448 * @hide
4449 */
4450 public static final String SEARCH_WEB_RESULTS_OVERRIDE_LIMIT =
4451 "search_web_results_override_limit";
4452 /**
4453 * The number of milliseconds that GlobalSearch will wait for suggestions from
4454 * promoted sources before continuing with all other sources.
4455 * @hide
4456 */
4457 public static final String SEARCH_PROMOTED_SOURCE_DEADLINE_MILLIS =
4458 "search_promoted_source_deadline_millis";
4459 /**
4460 * The number of milliseconds before GlobalSearch aborts search suggesiton queries.
4461 * @hide
4462 */
4463 public static final String SEARCH_SOURCE_TIMEOUT_MILLIS = "search_source_timeout_millis";
4464 /**
4465 * The maximum number of milliseconds that GlobalSearch shows the previous results
4466 * after receiving a new query.
4467 * @hide
4468 */
4469 public static final String SEARCH_PREFILL_MILLIS = "search_prefill_millis";
4470 /**
4471 * The maximum age of log data used for shortcuts in GlobalSearch.
4472 * @hide
4473 */
4474 public static final String SEARCH_MAX_STAT_AGE_MILLIS = "search_max_stat_age_millis";
4475 /**
4476 * The maximum age of log data used for source ranking in GlobalSearch.
4477 * @hide
4478 */
4479 public static final String SEARCH_MAX_SOURCE_EVENT_AGE_MILLIS =
4480 "search_max_source_event_age_millis";
4481 /**
4482 * The minimum number of impressions needed to rank a source in GlobalSearch.
4483 * @hide
4484 */
4485 public static final String SEARCH_MIN_IMPRESSIONS_FOR_SOURCE_RANKING =
4486 "search_min_impressions_for_source_ranking";
4487 /**
4488 * The minimum number of clicks needed to rank a source in GlobalSearch.
4489 * @hide
4490 */
4491 public static final String SEARCH_MIN_CLICKS_FOR_SOURCE_RANKING =
4492 "search_min_clicks_for_source_ranking";
4493 /**
4494 * The maximum number of shortcuts shown by GlobalSearch.
4495 * @hide
4496 */
4497 public static final String SEARCH_MAX_SHORTCUTS_RETURNED = "search_max_shortcuts_returned";
4498 /**
4499 * The size of the core thread pool for suggestion queries in GlobalSearch.
4500 * @hide
4501 */
4502 public static final String SEARCH_QUERY_THREAD_CORE_POOL_SIZE =
4503 "search_query_thread_core_pool_size";
4504 /**
4505 * The maximum size of the thread pool for suggestion queries in GlobalSearch.
4506 * @hide
4507 */
4508 public static final String SEARCH_QUERY_THREAD_MAX_POOL_SIZE =
4509 "search_query_thread_max_pool_size";
4510 /**
4511 * The size of the core thread pool for shortcut refreshing in GlobalSearch.
4512 * @hide
4513 */
4514 public static final String SEARCH_SHORTCUT_REFRESH_CORE_POOL_SIZE =
4515 "search_shortcut_refresh_core_pool_size";
4516 /**
4517 * The maximum size of the thread pool for shortcut refreshing in GlobalSearch.
4518 * @hide
4519 */
4520 public static final String SEARCH_SHORTCUT_REFRESH_MAX_POOL_SIZE =
4521 "search_shortcut_refresh_max_pool_size";
4522 /**
4523 * The maximun time that excess threads in the GlobalSeach thread pools will
4524 * wait before terminating.
4525 * @hide
4526 */
4527 public static final String SEARCH_THREAD_KEEPALIVE_SECONDS =
4528 "search_thread_keepalive_seconds";
4529 /**
4530 * The maximum number of concurrent suggestion queries to each source.
4531 * @hide
4532 */
4533 public static final String SEARCH_PER_SOURCE_CONCURRENT_QUERY_LIMIT =
4534 "search_per_source_concurrent_query_limit";
4535
San Mehat87734d32010-01-08 12:53:06 -08004536 /**
4537 * Whether or not alert sounds are played on MountService events. (0 = false, 1 = true)
4538 * @hide
4539 */
4540 public static final String MOUNT_PLAY_NOTIFICATION_SND = "mount_play_not_snd";
4541
4542 /**
4543 * Whether or not UMS auto-starts on UMS host detection. (0 = false, 1 = true)
4544 * @hide
4545 */
4546 public static final String MOUNT_UMS_AUTOSTART = "mount_ums_autostart";
4547
4548 /**
4549 * Whether or not a notification is displayed on UMS host detection. (0 = false, 1 = true)
4550 * @hide
4551 */
4552 public static final String MOUNT_UMS_PROMPT = "mount_ums_prompt";
4553
4554 /**
4555 * Whether or not a notification is displayed while UMS is enabled. (0 = false, 1 = true)
4556 * @hide
4557 */
4558 public static final String MOUNT_UMS_NOTIFY_ENABLED = "mount_ums_notify_enabled";
Doug Zongkeraed8f8e2010-01-07 18:07:50 -08004559
Dan Egnor42471dd2010-01-07 17:25:22 -08004560 /**
4561 * If nonzero, ANRs in invisible background processes bring up a dialog.
4562 * Otherwise, the process will be silently killed.
4563 * @hide
4564 */
4565 public static final String ANR_SHOW_BACKGROUND = "anr_show_background";
Erikeebc8e22010-02-18 13:27:19 -08004566
Mike LeBeau5d34e9b2010-02-10 19:34:56 -08004567 /**
Selim Guruna83f1e32014-05-05 15:59:39 -07004568 * (Experimental). If nonzero, WebView uses data reduction proxy to save network
4569 * bandwidth. Otherwise, WebView does not use data reduction proxy.
4570 * @hide
4571 */
4572 public static final String WEBVIEW_DATA_REDUCTION_PROXY = "webview_data_reduction_proxy";
4573
4574 /**
Mike LeBeau5d34e9b2010-02-10 19:34:56 -08004575 * The {@link ComponentName} string of the service to be used as the voice recognition
4576 * service.
Erikeebc8e22010-02-18 13:27:19 -08004577 *
Mike LeBeau5d34e9b2010-02-10 19:34:56 -08004578 * @hide
4579 */
4580 public static final String VOICE_RECOGNITION_SERVICE = "voice_recognition_service";
Dan Egnor42471dd2010-01-07 17:25:22 -08004581
William Luh623a4282013-06-24 12:14:18 -07004582 /**
4583 * Stores whether an user has consented to have apps verified through PAM.
4584 * The value is boolean (1 or 0).
4585 *
4586 * @hide
4587 */
4588 public static final String PACKAGE_VERIFIER_USER_CONSENT =
4589 "package_verifier_user_consent";
satok988323c2011-06-22 16:38:13 +09004590
4591 /**
satokada8c4e2011-08-23 14:56:56 +09004592 * The {@link ComponentName} string of the selected spell checker service which is
4593 * one of the services managed by the text service manager.
4594 *
4595 * @hide
4596 */
4597 public static final String SELECTED_SPELL_CHECKER = "selected_spell_checker";
4598
4599 /**
4600 * The {@link ComponentName} string of the selected subtype of the selected spell checker
satok988323c2011-06-22 16:38:13 +09004601 * service which is one of the services managed by the text service manager.
4602 *
4603 * @hide
4604 */
satokada8c4e2011-08-23 14:56:56 +09004605 public static final String SELECTED_SPELL_CHECKER_SUBTYPE =
4606 "selected_spell_checker_subtype";
satok988323c2011-06-22 16:38:13 +09004607
Doug Zongkeraed8f8e2010-01-07 18:07:50 -08004608 /**
satoka33c4fc2011-08-25 16:50:11 +09004609 * The {@link ComponentName} string whether spell checker is enabled or not.
4610 *
4611 * @hide
4612 */
4613 public static final String SPELL_CHECKER_ENABLED = "spell_checker_enabled";
4614
4615 /**
David Brown458e8062010-03-08 21:52:11 -08004616 * What happens when the user presses the Power button while in-call
4617 * and the screen is on.<br/>
4618 * <b>Values:</b><br/>
4619 * 1 - The Power button turns off the screen and locks the device. (Default behavior)<br/>
4620 * 2 - The Power button hangs up the current call.<br/>
4621 *
4622 * @hide
4623 */
4624 public static final String INCALL_POWER_BUTTON_BEHAVIOR = "incall_power_button_behavior";
4625
4626 /**
4627 * INCALL_POWER_BUTTON_BEHAVIOR value for "turn off screen".
4628 * @hide
4629 */
4630 public static final int INCALL_POWER_BUTTON_BEHAVIOR_SCREEN_OFF = 0x1;
4631
4632 /**
4633 * INCALL_POWER_BUTTON_BEHAVIOR value for "hang up".
4634 * @hide
4635 */
4636 public static final int INCALL_POWER_BUTTON_BEHAVIOR_HANGUP = 0x2;
4637
4638 /**
4639 * INCALL_POWER_BUTTON_BEHAVIOR default value.
4640 * @hide
4641 */
4642 public static final int INCALL_POWER_BUTTON_BEHAVIOR_DEFAULT =
4643 INCALL_POWER_BUTTON_BEHAVIOR_SCREEN_OFF;
4644
4645 /**
Jeff Browna20dda42014-05-27 20:57:24 -07004646 * Whether the device should wake when the wake gesture sensor detects motion.
4647 * @hide
4648 */
4649 public static final String WAKE_GESTURE_ENABLED = "wake_gesture_enabled";
4650
4651 /**
John Spurlocka4215ce2014-08-04 14:50:38 -04004652 * Whether the device should doze if configured.
4653 * @hide
4654 */
4655 public static final String DOZE_ENABLED = "doze_enabled";
4656
4657 /**
Dianne Hackborn2ccda4d2010-03-22 21:49:15 -07004658 * The current night mode that has been selected by the user. Owned
4659 * and controlled by UiModeManagerService. Constants are as per
4660 * UiModeManager.
4661 * @hide
4662 */
4663 public static final String UI_NIGHT_MODE = "ui_night_mode";
Suchi Amalapurapu40e47252010-04-07 16:15:50 -07004664
4665 /**
John Spurlock1a868b72012-08-22 09:56:51 -04004666 * Whether screensavers are enabled.
Daniel Sandler0601eb72011-04-13 01:01:32 -04004667 * @hide
4668 */
Daniel Sandler2d545362011-11-17 10:38:37 -08004669 public static final String SCREENSAVER_ENABLED = "screensaver_enabled";
Daniel Sandler0601eb72011-04-13 01:01:32 -04004670
4671 /**
John Spurlock1a868b72012-08-22 09:56:51 -04004672 * The user's chosen screensaver components.
Daniel Sandler2d545362011-11-17 10:38:37 -08004673 *
John Spurlock1a868b72012-08-22 09:56:51 -04004674 * These will be launched by the PhoneWindowManager after a timeout when not on
Daniel Sandler2d545362011-11-17 10:38:37 -08004675 * battery, or upon dock insertion (if SCREENSAVER_ACTIVATE_ON_DOCK is set to 1).
Daniel Sandler0601eb72011-04-13 01:01:32 -04004676 * @hide
4677 */
John Spurlock1a868b72012-08-22 09:56:51 -04004678 public static final String SCREENSAVER_COMPONENTS = "screensaver_components";
Daniel Sandler2d545362011-11-17 10:38:37 -08004679
4680 /**
John Spurlock1a868b72012-08-22 09:56:51 -04004681 * If screensavers are enabled, whether the screensaver should be automatically launched
4682 * when the device is inserted into a (desk) dock.
Daniel Sandler2d545362011-11-17 10:38:37 -08004683 * @hide
4684 */
4685 public static final String SCREENSAVER_ACTIVATE_ON_DOCK = "screensaver_activate_on_dock";
Daniel Sandler0601eb72011-04-13 01:01:32 -04004686
John Spurlock1a868b72012-08-22 09:56:51 -04004687 /**
4688 * If screensavers are enabled, whether the screensaver should be automatically launched
4689 * when the screen times out when not on battery.
4690 * @hide
4691 */
4692 public static final String SCREENSAVER_ACTIVATE_ON_SLEEP = "screensaver_activate_on_sleep";
4693
4694 /**
4695 * If screensavers are enabled, the default screensaver component.
4696 * @hide
4697 */
4698 public static final String SCREENSAVER_DEFAULT_COMPONENT = "screensaver_default_component";
4699
Daniel Sandler0601eb72011-04-13 01:01:32 -04004700 /**
Martijn Coenena7397882013-07-30 20:07:47 -07004701 * The default NFC payment component
4702 * @hide
4703 */
4704 public static final String NFC_PAYMENT_DEFAULT_COMPONENT = "nfc_payment_default_component";
4705
4706 /**
Martijn Coenen2f6f3a012014-04-25 17:00:21 -07004707 * Whether NFC payment is handled by the foreground application or a default.
4708 * @hide
4709 */
4710 public static final String NFC_PAYMENT_FOREGROUND = "nfc_payment_foreground";
4711
4712 /**
David Braunf5d83192013-09-16 13:43:51 -07004713 * Specifies the package name currently configured to be the primary sms application
4714 * @hide
4715 */
4716 public static final String SMS_DEFAULT_APPLICATION = "sms_default_application";
4717
4718 /**
Daniel Sandler4b749ef2013-03-18 21:53:04 -04004719 * Name of a package that the current user has explicitly allowed to see all of that
4720 * user's notifications.
4721 *
4722 * @hide
4723 */
4724 public static final String ENABLED_NOTIFICATION_LISTENERS = "enabled_notification_listeners";
4725
John Spurlock7340fc82014-04-24 18:50:12 -04004726 /**
4727 * @hide
4728 */
4729 public static final String ENABLED_CONDITION_PROVIDERS = "enabled_condition_providers";
4730
John Spurlock5c454122013-06-17 07:35:46 -04004731 /** @hide */
4732 public static final String BAR_SERVICE_COMPONENT = "bar_service_component";
4733
John Spurlockd67ec252013-09-05 11:31:54 -04004734 /** @hide */
John Spurlockf1a36642013-10-12 17:50:42 -04004735 public static final String IMMERSIVE_MODE_CONFIRMATIONS = "immersive_mode_confirmations";
John Spurlockd67ec252013-09-05 11:31:54 -04004736
Yorke Lee647f8f32013-05-07 10:49:44 -07004737 /**
Svetoslavf43e8512013-09-30 17:33:05 -07004738 * This is the query URI for finding a print service to install.
4739 *
4740 * @hide
4741 */
4742 public static final String PRINT_SERVICE_SEARCH_URI = "print_service_search_uri";
4743
4744 /**
4745 * This is the query URI for finding a NFC payment service to install.
4746 *
4747 * @hide
4748 */
4749 public static final String PAYMENT_SERVICE_SEARCH_URI = "payment_service_search_uri";
4750
4751 /**
Amith Yamasani1e9c2182014-06-11 17:25:51 -07004752 * If enabled, apps should try to skip any introductory hints on first launch. This might
Amith Yamasani0c416392014-06-13 15:54:39 -07004753 * apply to users that are already familiar with the environment or temporary users.
Amith Yamasani1e9c2182014-06-11 17:25:51 -07004754 * <p>
4755 * Type : int (0 to show hints, 1 to skip showing hints)
Amith Yamasani1e9c2182014-06-11 17:25:51 -07004756 */
4757 public static final String SKIP_FIRST_USE_HINTS = "skip_first_use_hints";
4758
4759 /**
John Spurlockaa5ee4d2014-07-25 13:05:12 -04004760 * Persisted playback time after a user confirmation of an unsafe volume level.
4761 *
4762 * @hide
4763 */
4764 public static final String UNSAFE_VOLUME_MUSIC_ACTIVE_MS = "unsafe_volume_music_active_ms";
4765
4766 /**
Dan Sandler52e5701e2014-07-22 23:14:54 -04004767 * This preference enables notification display on the lockscreen.
4768 * @hide
4769 */
4770 public static final String LOCK_SCREEN_SHOW_NOTIFICATIONS =
4771 "lock_screen_show_notifications";
4772
4773 /**
Dongwon Kang4d933a02014-08-07 22:51:47 -07004774 * List of TV inputs that are currently hidden. This is a string
Jaewan Kimf0e530e2014-08-22 00:43:31 +09004775 * containing the IDs of all hidden TV inputs. Each ID is encoded by
4776 * {@link android.net.Uri#encode(String)} and separated by ':'.
Dongwon Kang4d933a02014-08-07 22:51:47 -07004777 * @hide
4778 */
4779 public static final String TV_INPUT_HIDDEN_INPUTS = "tv_input_hidden_inputs";
4780
4781 /**
4782 * List of custom TV input labels. This is a string containing <TV input id, custom name>
Jaewan Kimf0e530e2014-08-22 00:43:31 +09004783 * pairs. TV input id and custom name are encoded by {@link android.net.Uri#encode(String)}
4784 * and separated by ','. Each pair is separated by ':'.
Dongwon Kang4d933a02014-08-07 22:51:47 -07004785 * @hide
4786 */
4787 public static final String TV_INPUT_CUSTOM_LABELS = "tv_input_custom_labels";
4788
4789 /**
Glenn Kasten34cc4db2014-08-13 10:56:38 -07004790 * Whether automatic routing of system audio to USB audio peripheral is disabled.
4791 * The value is boolean (1 or 0), where 1 means automatic routing is disabled,
4792 * and 0 means automatic routing is enabled.
4793 *
4794 * @hide
4795 */
4796 public static final String USB_AUDIO_AUTOMATIC_ROUTING_DISABLED =
4797 "usb_audio_automatic_routing_disabled";
4798
4799 /**
Svetoslav Ganova571a582011-09-20 18:32:20 -07004800 * This are the settings to be backed up.
4801 *
4802 * NOTE: Settings are backed up and restored in the order they appear
4803 * in this array. If you have one setting depending on another,
4804 * make sure that they are ordered appropriately.
4805 *
-b master501eec92009-07-06 13:53:11 -07004806 * @hide
4807 */
4808 public static final String[] SETTINGS_TO_BACKUP = {
Christopher Tate58f41ec2013-01-11 15:40:36 -08004809 BUGREPORT_IN_POWER_MENU, // moved to global
Amith Yamasani8823c0a82009-07-07 14:30:17 -07004810 ALLOW_MOCK_LOCATION,
-b master501eec92009-07-06 13:53:11 -07004811 PARENTAL_CONTROL_ENABLED,
4812 PARENTAL_CONTROL_REDIRECT_URL,
Christopher Tate66488d62012-10-02 11:58:01 -07004813 USB_MASS_STORAGE_ENABLED, // moved to global
Svetoslav Ganov1cf70bb2012-08-06 10:53:34 -07004814 ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED,
4815 ACCESSIBILITY_DISPLAY_MAGNIFICATION_SCALE,
4816 ACCESSIBILITY_DISPLAY_MAGNIFICATION_AUTO_UPDATE,
Svetoslav Ganov585f13f8d2010-08-10 07:59:15 -07004817 ACCESSIBILITY_SCRIPT_INJECTION,
Christopher Tate14c2d792010-02-25 16:49:44 -08004818 BACKUP_AUTO_RESTORE,
-b master501eec92009-07-06 13:53:11 -07004819 ENABLED_ACCESSIBILITY_SERVICES,
Svetoslav Ganov9a4c5cd2012-05-30 14:06:32 -07004820 TOUCH_EXPLORATION_GRANTED_ACCESSIBILITY_SERVICES,
Svetoslav Ganova28a16d2011-07-28 11:24:21 -07004821 TOUCH_EXPLORATION_ENABLED,
Svetoslav Ganova571a582011-09-20 18:32:20 -07004822 ACCESSIBILITY_ENABLED,
Svetoslav Ganov55f937a2011-12-05 11:42:07 -08004823 ACCESSIBILITY_SPEAK_PASSWORD,
Chris Craikcce47eb2014-07-16 15:12:15 -07004824 ACCESSIBILITY_HIGH_TEXT_CONTRAST_ENABLED,
Alan Viveretteef793802013-07-23 14:15:28 -07004825 ACCESSIBILITY_CAPTIONING_ENABLED,
4826 ACCESSIBILITY_CAPTIONING_LOCALE,
4827 ACCESSIBILITY_CAPTIONING_BACKGROUND_COLOR,
4828 ACCESSIBILITY_CAPTIONING_FOREGROUND_COLOR,
4829 ACCESSIBILITY_CAPTIONING_EDGE_TYPE,
4830 ACCESSIBILITY_CAPTIONING_EDGE_COLOR,
4831 ACCESSIBILITY_CAPTIONING_TYPEFACE,
Alan Viverette69ce69b2013-08-29 12:23:48 -07004832 ACCESSIBILITY_CAPTIONING_FONT_SCALE,
-b master501eec92009-07-06 13:53:11 -07004833 TTS_USE_DEFAULTS,
4834 TTS_DEFAULT_RATE,
4835 TTS_DEFAULT_PITCH,
4836 TTS_DEFAULT_SYNTH,
4837 TTS_DEFAULT_LANG,
4838 TTS_DEFAULT_COUNTRY,
Charles Chenceffa152010-03-16 21:18:10 -07004839 TTS_ENABLED_PLUGINS,
Narayan Kamath6d632962011-08-24 11:51:37 +01004840 TTS_DEFAULT_LOCALE,
Christopher Tate66488d62012-10-02 11:58:01 -07004841 WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON, // moved to global
4842 WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY, // moved to global
4843 WIFI_NUM_OPEN_NETWORKS_KEPT, // moved to global
San Mehat87734d32010-01-08 12:53:06 -08004844 MOUNT_PLAY_NOTIFICATION_SND,
4845 MOUNT_UMS_AUTOSTART,
4846 MOUNT_UMS_PROMPT,
Dianne Hackborn2ccda4d2010-03-22 21:49:15 -07004847 MOUNT_UMS_NOTIFY_ENABLED,
Yorke Lee35785bf2013-08-21 19:16:20 -07004848 UI_NIGHT_MODE
-b master501eec92009-07-06 13:53:11 -07004849 };
4850
4851 /**
Amith Yamasani4f7e2e32014-08-14 18:49:48 -07004852 * These entries are considered common between the personal and the managed profile,
4853 * since the managed profile doesn't get to change them.
4854 * @hide
4855 */
4856 public static final String[] CLONE_TO_MANAGED_PROFILE = {
4857 ACCESSIBILITY_ENABLED,
4858 ALLOW_MOCK_LOCATION,
4859 ALLOWED_GEOLOCATION_ORIGINS,
4860 DEFAULT_INPUT_METHOD,
4861 ENABLED_ACCESSIBILITY_SERVICES,
4862 ENABLED_INPUT_METHODS,
4863 LOCATION_MODE,
4864 LOCATION_PROVIDERS_ALLOWED,
4865 LOCK_SCREEN_ALLOW_PRIVATE_NOTIFICATIONS,
4866 SELECTED_INPUT_METHOD_SUBTYPE,
4867 SELECTED_SPELL_CHECKER,
4868 SELECTED_SPELL_CHECKER_SUBTYPE
4869 };
4870
4871 /**
Mike Lockwoodbd2a7122009-04-02 23:41:33 -07004872 * Helper method for determining if a location provider is enabled.
Tom O'Neilld5759432013-09-11 11:03:03 -07004873 *
Mike Lockwoodbd2a7122009-04-02 23:41:33 -07004874 * @param cr the content resolver to use
4875 * @param provider the location provider to query
4876 * @return true if the provider is enabled
Tom O'Neilld5759432013-09-11 11:03:03 -07004877 *
4878 * @deprecated use {@link #LOCATION_MODE} or
4879 * {@link LocationManager#isProviderEnabled(String)}
Mike Lockwoodbd2a7122009-04-02 23:41:33 -07004880 */
Tom O'Neill1f48b782013-08-19 18:14:56 -07004881 @Deprecated
Mike Lockwoodbd2a7122009-04-02 23:41:33 -07004882 public static final boolean isLocationProviderEnabled(ContentResolver cr, String provider) {
Victoria Leaseb711d572012-10-02 13:14:11 -07004883 return isLocationProviderEnabledForUser(cr, provider, UserHandle.myUserId());
4884 }
4885
4886 /**
4887 * Helper method for determining if a location provider is enabled.
4888 * @param cr the content resolver to use
4889 * @param provider the location provider to query
4890 * @param userId the userId to query
4891 * @return true if the provider is enabled
Tom O'Neilld5759432013-09-11 11:03:03 -07004892 * @deprecated use {@link #LOCATION_MODE} or
4893 * {@link LocationManager#isProviderEnabled(String)}
Victoria Leaseb711d572012-10-02 13:14:11 -07004894 * @hide
4895 */
Tom O'Neill1f48b782013-08-19 18:14:56 -07004896 @Deprecated
Victoria Leaseb711d572012-10-02 13:14:11 -07004897 public static final boolean isLocationProviderEnabledForUser(ContentResolver cr, String provider, int userId) {
4898 String allowedProviders = Settings.Secure.getStringForUser(cr,
4899 LOCATION_PROVIDERS_ALLOWED, userId);
Brad Fitzpatrick11fe1812010-09-10 16:07:52 -07004900 return TextUtils.delimitedStringContains(allowedProviders, ',', provider);
Mike Lockwoodbd2a7122009-04-02 23:41:33 -07004901 }
4902
4903 /**
4904 * Thread-safe method for enabling or disabling a single location provider.
4905 * @param cr the content resolver to use
4906 * @param provider the location provider to enable or disable
4907 * @param enabled true if the provider should be enabled
Tom O'Neilla324ac72013-08-26 14:40:23 -07004908 * @deprecated use {@link #putInt(ContentResolver, String, int)} and {@link #LOCATION_MODE}
Mike Lockwoodbd2a7122009-04-02 23:41:33 -07004909 */
Tom O'Neill1f48b782013-08-19 18:14:56 -07004910 @Deprecated
Mike Lockwoodbd2a7122009-04-02 23:41:33 -07004911 public static final void setLocationProviderEnabled(ContentResolver cr,
4912 String provider, boolean enabled) {
Victoria Leaseb711d572012-10-02 13:14:11 -07004913 setLocationProviderEnabledForUser(cr, provider, enabled, UserHandle.myUserId());
4914 }
4915
4916 /**
4917 * Thread-safe method for enabling or disabling a single location provider.
Tom O'Neilla324ac72013-08-26 14:40:23 -07004918 *
Victoria Leaseb711d572012-10-02 13:14:11 -07004919 * @param cr the content resolver to use
4920 * @param provider the location provider to enable or disable
4921 * @param enabled true if the provider should be enabled
4922 * @param userId the userId for which to enable/disable providers
Tom O'Neilla324ac72013-08-26 14:40:23 -07004923 * @return true if the value was set, false on database errors
4924 * @deprecated use {@link #putIntForUser(ContentResolver, String, int, int)} and
4925 * {@link #LOCATION_MODE}
Victoria Leaseb711d572012-10-02 13:14:11 -07004926 * @hide
4927 */
Tom O'Neill1f48b782013-08-19 18:14:56 -07004928 @Deprecated
Tom O'Neilla324ac72013-08-26 14:40:23 -07004929 public static final boolean setLocationProviderEnabledForUser(ContentResolver cr,
Victoria Leaseb711d572012-10-02 13:14:11 -07004930 String provider, boolean enabled, int userId) {
David Christie3f7b6522013-08-06 19:19:08 -07004931 synchronized (mLocationSettingsLock) {
4932 // to ensure thread safety, we write the provider name with a '+' or '-'
4933 // and let the SettingsProvider handle it rather than reading and modifying
4934 // the list of enabled providers.
4935 if (enabled) {
4936 provider = "+" + provider;
4937 } else {
4938 provider = "-" + provider;
4939 }
Tom O'Neilla324ac72013-08-26 14:40:23 -07004940 return putStringForUser(cr, Settings.Secure.LOCATION_PROVIDERS_ALLOWED, provider,
David Christie3f7b6522013-08-06 19:19:08 -07004941 userId);
Mike Lockwoodbd2a7122009-04-02 23:41:33 -07004942 }
Mike Lockwoodbd2a7122009-04-02 23:41:33 -07004943 }
Tom O'Neill1f48b782013-08-19 18:14:56 -07004944
4945 /**
4946 * Thread-safe method for setting the location mode to one of
4947 * {@link #LOCATION_MODE_HIGH_ACCURACY}, {@link #LOCATION_MODE_SENSORS_ONLY},
4948 * {@link #LOCATION_MODE_BATTERY_SAVING}, or {@link #LOCATION_MODE_OFF}.
4949 *
Tom O'Neill1f48b782013-08-19 18:14:56 -07004950 * @param cr the content resolver to use
4951 * @param mode such as {@link #LOCATION_MODE_HIGH_ACCURACY}
4952 * @param userId the userId for which to change mode
Tom O'Neilla324ac72013-08-26 14:40:23 -07004953 * @return true if the value was set, false on database errors
Tom O'Neill1f48b782013-08-19 18:14:56 -07004954 *
4955 * @throws IllegalArgumentException if mode is not one of the supported values
4956 */
Tom O'Neill7f6f4572013-08-27 10:53:15 -07004957 private static final boolean setLocationModeForUser(ContentResolver cr, int mode,
4958 int userId) {
Tom O'Neill1f48b782013-08-19 18:14:56 -07004959 synchronized (mLocationSettingsLock) {
4960 boolean gps = false;
4961 boolean network = false;
4962 switch (mode) {
4963 case LOCATION_MODE_OFF:
4964 break;
4965 case LOCATION_MODE_SENSORS_ONLY:
4966 gps = true;
4967 break;
4968 case LOCATION_MODE_BATTERY_SAVING:
4969 network = true;
4970 break;
4971 case LOCATION_MODE_HIGH_ACCURACY:
4972 gps = true;
4973 network = true;
4974 break;
4975 default:
4976 throw new IllegalArgumentException("Invalid location mode: " + mode);
4977 }
Tom O'Neilla324ac72013-08-26 14:40:23 -07004978 boolean gpsSuccess = Settings.Secure.setLocationProviderEnabledForUser(
Tom O'Neill1f48b782013-08-19 18:14:56 -07004979 cr, LocationManager.GPS_PROVIDER, gps, userId);
Tom O'Neilla324ac72013-08-26 14:40:23 -07004980 boolean nlpSuccess = Settings.Secure.setLocationProviderEnabledForUser(
Tom O'Neill1f48b782013-08-19 18:14:56 -07004981 cr, LocationManager.NETWORK_PROVIDER, network, userId);
Tom O'Neilla324ac72013-08-26 14:40:23 -07004982 return gpsSuccess && nlpSuccess;
Tom O'Neill1f48b782013-08-19 18:14:56 -07004983 }
4984 }
4985
4986 /**
Tom O'Neill1f48b782013-08-19 18:14:56 -07004987 * Thread-safe method for reading the location mode, returns one of
4988 * {@link #LOCATION_MODE_HIGH_ACCURACY}, {@link #LOCATION_MODE_SENSORS_ONLY},
4989 * {@link #LOCATION_MODE_BATTERY_SAVING}, or {@link #LOCATION_MODE_OFF}.
4990 *
4991 * @param cr the content resolver to use
4992 * @param userId the userId for which to read the mode
4993 * @return the location mode
4994 */
Tom O'Neill7f6f4572013-08-27 10:53:15 -07004995 private static final int getLocationModeForUser(ContentResolver cr, int userId) {
Tom O'Neill1f48b782013-08-19 18:14:56 -07004996 synchronized (mLocationSettingsLock) {
4997 boolean gpsEnabled = Settings.Secure.isLocationProviderEnabledForUser(
4998 cr, LocationManager.GPS_PROVIDER, userId);
4999 boolean networkEnabled = Settings.Secure.isLocationProviderEnabledForUser(
5000 cr, LocationManager.NETWORK_PROVIDER, userId);
5001 if (gpsEnabled && networkEnabled) {
5002 return LOCATION_MODE_HIGH_ACCURACY;
5003 } else if (gpsEnabled) {
5004 return LOCATION_MODE_SENSORS_ONLY;
5005 } else if (networkEnabled) {
5006 return LOCATION_MODE_BATTERY_SAVING;
5007 } else {
5008 return LOCATION_MODE_OFF;
5009 }
5010 }
5011 }
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08005012 }
Jaikumar Ganesh9bfbfbd2009-05-15 12:05:56 -07005013
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08005014 /**
Christopher Tate06efb532012-08-24 15:29:27 -07005015 * Global system settings, containing preferences that always apply identically
5016 * to all defined users. Applications can read these but are not allowed to write;
5017 * like the "Secure" settings, these are for preferences that the user must
5018 * explicitly modify through the system UI or specialized APIs for those values.
5019 */
5020 public static final class Global extends NameValueTable {
5021 public static final String SYS_PROP_SETTING_VERSION = "sys.settings_global_version";
5022
5023 /**
5024 * The content:// style URL for global secure settings items. Not public.
5025 */
5026 public static final Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/global");
5027
5028 /**
Amith Yamasani23a0f052014-07-25 12:26:53 -07005029 * Whether users are allowed to add more users or guest from lockscreen.
5030 * <p>
5031 * Type: int
5032 * @hide
5033 */
5034 public static final String ADD_USERS_WHEN_LOCKED = "add_users_when_locked";
5035
5036 /**
Svetoslav Ganov7befb7d2012-09-27 16:49:23 -07005037 * Setting whether the global gesture for enabling accessibility is enabled.
5038 * If this gesture is enabled the user will be able to perfrom it to enable
5039 * the accessibility state without visiting the settings app.
5040 * @hide
5041 */
5042 public static final String ENABLE_ACCESSIBILITY_GLOBAL_GESTURE_ENABLED =
5043 "enable_accessibility_global_gesture_enabled";
5044
5045 /**
Christopher Tate06efb532012-08-24 15:29:27 -07005046 * Whether Airplane Mode is on.
5047 */
5048 public static final String AIRPLANE_MODE_ON = "airplane_mode_on";
5049
5050 /**
5051 * Constant for use in AIRPLANE_MODE_RADIOS to specify Bluetooth radio.
5052 */
5053 public static final String RADIO_BLUETOOTH = "bluetooth";
5054
5055 /**
5056 * Constant for use in AIRPLANE_MODE_RADIOS to specify Wi-Fi radio.
5057 */
5058 public static final String RADIO_WIFI = "wifi";
5059
5060 /**
5061 * {@hide}
5062 */
5063 public static final String RADIO_WIMAX = "wimax";
5064 /**
5065 * Constant for use in AIRPLANE_MODE_RADIOS to specify Cellular radio.
5066 */
5067 public static final String RADIO_CELL = "cell";
5068
5069 /**
5070 * Constant for use in AIRPLANE_MODE_RADIOS to specify NFC radio.
5071 */
5072 public static final String RADIO_NFC = "nfc";
5073
5074 /**
5075 * A comma separated list of radios that need to be disabled when airplane mode
5076 * is on. This overrides WIFI_ON and BLUETOOTH_ON, if Wi-Fi and bluetooth are
5077 * included in the comma separated list.
5078 */
5079 public static final String AIRPLANE_MODE_RADIOS = "airplane_mode_radios";
5080
5081 /**
5082 * A comma separated list of radios that should to be disabled when airplane mode
5083 * is on, but can be manually reenabled by the user. For example, if RADIO_WIFI is
5084 * added to both AIRPLANE_MODE_RADIOS and AIRPLANE_MODE_TOGGLEABLE_RADIOS, then Wifi
5085 * will be turned off when entering airplane mode, but the user will be able to reenable
5086 * Wifi in the Settings app.
5087 *
5088 * {@hide}
5089 */
5090 public static final String AIRPLANE_MODE_TOGGLEABLE_RADIOS = "airplane_mode_toggleable_radios";
5091
5092 /**
5093 * The policy for deciding when Wi-Fi should go to sleep (which will in
5094 * turn switch to using the mobile data as an Internet connection).
5095 * <p>
5096 * Set to one of {@link #WIFI_SLEEP_POLICY_DEFAULT},
5097 * {@link #WIFI_SLEEP_POLICY_NEVER_WHILE_PLUGGED}, or
5098 * {@link #WIFI_SLEEP_POLICY_NEVER}.
5099 */
5100 public static final String WIFI_SLEEP_POLICY = "wifi_sleep_policy";
5101
5102 /**
5103 * Value for {@link #WIFI_SLEEP_POLICY} to use the default Wi-Fi sleep
5104 * policy, which is to sleep shortly after the turning off
5105 * according to the {@link #STAY_ON_WHILE_PLUGGED_IN} setting.
5106 */
5107 public static final int WIFI_SLEEP_POLICY_DEFAULT = 0;
5108
5109 /**
5110 * Value for {@link #WIFI_SLEEP_POLICY} to use the default policy when
5111 * the device is on battery, and never go to sleep when the device is
5112 * plugged in.
5113 */
5114 public static final int WIFI_SLEEP_POLICY_NEVER_WHILE_PLUGGED = 1;
5115
5116 /**
5117 * Value for {@link #WIFI_SLEEP_POLICY} to never go to sleep.
5118 */
5119 public static final int WIFI_SLEEP_POLICY_NEVER = 2;
5120
5121 /**
5122 * Value to specify if the user prefers the date, time and time zone
5123 * to be automatically fetched from the network (NITZ). 1=yes, 0=no
5124 */
5125 public static final String AUTO_TIME = "auto_time";
5126
5127 /**
5128 * Value to specify if the user prefers the time zone
5129 * to be automatically fetched from the network (NITZ). 1=yes, 0=no
5130 */
5131 public static final String AUTO_TIME_ZONE = "auto_time_zone";
5132
5133 /**
5134 * URI for the car dock "in" event sound.
5135 * @hide
5136 */
5137 public static final String CAR_DOCK_SOUND = "car_dock_sound";
5138
5139 /**
5140 * URI for the car dock "out" event sound.
5141 * @hide
5142 */
5143 public static final String CAR_UNDOCK_SOUND = "car_undock_sound";
5144
5145 /**
5146 * URI for the desk dock "in" event sound.
5147 * @hide
5148 */
5149 public static final String DESK_DOCK_SOUND = "desk_dock_sound";
5150
5151 /**
5152 * URI for the desk dock "out" event sound.
5153 * @hide
5154 */
5155 public static final String DESK_UNDOCK_SOUND = "desk_undock_sound";
5156
5157 /**
5158 * Whether to play a sound for dock events.
5159 * @hide
5160 */
5161 public static final String DOCK_SOUNDS_ENABLED = "dock_sounds_enabled";
5162
5163 /**
5164 * URI for the "device locked" (keyguard shown) sound.
5165 * @hide
5166 */
5167 public static final String LOCK_SOUND = "lock_sound";
5168
5169 /**
5170 * URI for the "device unlocked" sound.
5171 * @hide
5172 */
5173 public static final String UNLOCK_SOUND = "unlock_sound";
5174
5175 /**
Adrian Roos49e057d2014-08-13 17:14:51 +02005176 * URI for the "device is trusted" sound, which is played when the device enters the trusted
5177 * state without unlocking.
5178 * @hide
5179 */
5180 public static final String TRUSTED_SOUND = "trusted_sound";
5181
5182 /**
Christopher Tate06efb532012-08-24 15:29:27 -07005183 * URI for the low battery sound file.
5184 * @hide
5185 */
5186 public static final String LOW_BATTERY_SOUND = "low_battery_sound";
5187
5188 /**
5189 * Whether to play a sound for low-battery alerts.
5190 * @hide
5191 */
5192 public static final String POWER_SOUNDS_ENABLED = "power_sounds_enabled";
5193
5194 /**
Jeff Brown84e27562012-12-07 13:56:34 -08005195 * URI for the "wireless charging started" sound.
5196 * @hide
5197 */
5198 public static final String WIRELESS_CHARGING_STARTED_SOUND =
5199 "wireless_charging_started_sound";
5200
5201 /**
Christopher Tate06efb532012-08-24 15:29:27 -07005202 * Whether we keep the device on while the device is plugged in.
5203 * Supported values are:
5204 * <ul>
5205 * <li>{@code 0} to never stay on while plugged in</li>
5206 * <li>{@link BatteryManager#BATTERY_PLUGGED_AC} to stay on for AC charger</li>
5207 * <li>{@link BatteryManager#BATTERY_PLUGGED_USB} to stay on for USB charger</li>
5208 * <li>{@link BatteryManager#BATTERY_PLUGGED_WIRELESS} to stay on for wireless charger</li>
5209 * </ul>
5210 * These values can be OR-ed together.
5211 */
5212 public static final String STAY_ON_WHILE_PLUGGED_IN = "stay_on_while_plugged_in";
5213
5214 /**
Christopher Tate58f41ec2013-01-11 15:40:36 -08005215 * When the user has enable the option to have a "bug report" command
5216 * in the power menu.
5217 * @hide
5218 */
5219 public static final String BUGREPORT_IN_POWER_MENU = "bugreport_in_power_menu";
5220
5221 /**
Christopher Tate06efb532012-08-24 15:29:27 -07005222 * Whether ADB is enabled.
5223 */
5224 public static final String ADB_ENABLED = "adb_enabled";
5225
5226 /**
Jon Miranda836c0a82014-08-11 12:32:26 -07005227 * Whether Views are allowed to save their attribute data.
5228 * @hide
5229 */
5230 public static final String DEBUG_VIEW_ATTRIBUTES = "debug_view_attributes";
5231
5232 /**
Christopher Tate06efb532012-08-24 15:29:27 -07005233 * Whether assisted GPS should be enabled or not.
5234 * @hide
5235 */
5236 public static final String ASSISTED_GPS_ENABLED = "assisted_gps_enabled";
5237
5238 /**
5239 * Whether bluetooth is enabled/disabled
5240 * 0=disabled. 1=enabled.
5241 */
5242 public static final String BLUETOOTH_ON = "bluetooth_on";
5243
5244 /**
5245 * CDMA Cell Broadcast SMS
5246 * 0 = CDMA Cell Broadcast SMS disabled
5247 * 1 = CDMA Cell Broadcast SMS enabled
5248 * @hide
5249 */
5250 public static final String CDMA_CELL_BROADCAST_SMS =
5251 "cdma_cell_broadcast_sms";
5252
5253 /**
5254 * The CDMA roaming mode 0 = Home Networks, CDMA default
5255 * 1 = Roaming on Affiliated networks
5256 * 2 = Roaming on any networks
5257 * @hide
5258 */
5259 public static final String CDMA_ROAMING_MODE = "roaming_settings";
5260
5261 /**
5262 * The CDMA subscription mode 0 = RUIM/SIM (default)
5263 * 1 = NV
5264 * @hide
5265 */
5266 public static final String CDMA_SUBSCRIPTION_MODE = "subscription_mode";
5267
5268 /** Inactivity timeout to track mobile data activity.
5269 *
5270 * If set to a positive integer, it indicates the inactivity timeout value in seconds to
5271 * infer the data activity of mobile network. After a period of no activity on mobile
5272 * networks with length specified by the timeout, an {@code ACTION_DATA_ACTIVITY_CHANGE}
5273 * intent is fired to indicate a transition of network status from "active" to "idle". Any
5274 * subsequent activity on mobile networks triggers the firing of {@code
5275 * ACTION_DATA_ACTIVITY_CHANGE} intent indicating transition from "idle" to "active".
5276 *
5277 * Network activity refers to transmitting or receiving data on the network interfaces.
5278 *
5279 * Tracking is disabled if set to zero or negative value.
5280 *
5281 * @hide
5282 */
5283 public static final String DATA_ACTIVITY_TIMEOUT_MOBILE = "data_activity_timeout_mobile";
5284
5285 /** Timeout to tracking Wifi data activity. Same as {@code DATA_ACTIVITY_TIMEOUT_MOBILE}
5286 * but for Wifi network.
5287 * @hide
5288 */
5289 public static final String DATA_ACTIVITY_TIMEOUT_WIFI = "data_activity_timeout_wifi";
5290
5291 /**
5292 * Whether or not data roaming is enabled. (0 = false, 1 = true)
5293 */
5294 public static final String DATA_ROAMING = "data_roaming";
5295
5296 /**
Wink Saville75c1e692013-03-20 17:06:50 -07005297 * The value passed to a Mobile DataConnection via bringUp which defines the
5298 * number of retries to preform when setting up the initial connection. The default
5299 * value defined in DataConnectionTrackerBase#DEFAULT_MDC_INITIAL_RETRY is currently 1.
5300 * @hide
5301 */
5302 public static final String MDC_INITIAL_MAX_RETRY = "mdc_initial_max_retry";
5303
5304 /**
Christopher Tate06efb532012-08-24 15:29:27 -07005305 * Whether user has enabled development settings.
5306 */
5307 public static final String DEVELOPMENT_SETTINGS_ENABLED = "development_settings_enabled";
5308
5309 /**
5310 * Whether the device has been provisioned (0 = false, 1 = true)
5311 */
5312 public static final String DEVICE_PROVISIONED = "device_provisioned";
5313
5314 /**
5315 * The saved value for WindowManagerService.setForcedDisplayDensity().
5316 * One integer in dpi. If unset, then use the real display density.
5317 * @hide
5318 */
5319 public static final String DISPLAY_DENSITY_FORCED = "display_density_forced";
5320
5321 /**
5322 * The saved value for WindowManagerService.setForcedDisplaySize().
5323 * Two integers separated by a comma. If unset, then use the real display size.
5324 * @hide
5325 */
5326 public static final String DISPLAY_SIZE_FORCED = "display_size_forced";
5327
5328 /**
5329 * The maximum size, in bytes, of a download that the download manager will transfer over
5330 * a non-wifi connection.
5331 * @hide
5332 */
5333 public static final String DOWNLOAD_MAX_BYTES_OVER_MOBILE =
5334 "download_manager_max_bytes_over_mobile";
5335
5336 /**
5337 * The recommended maximum size, in bytes, of a download that the download manager should
5338 * transfer over a non-wifi connection. Over this size, the use will be warned, but will
5339 * have the option to start the download over the mobile connection anyway.
5340 * @hide
5341 */
5342 public static final String DOWNLOAD_RECOMMENDED_MAX_BYTES_OVER_MOBILE =
5343 "download_manager_recommended_max_bytes_over_mobile";
5344
5345 /**
Christopher Tateaa036a22014-05-19 16:33:27 -07005346 * @deprecated Use {@link android.provider.Settings.Secure#INSTALL_NON_MARKET_APPS} instead
Christopher Tate06efb532012-08-24 15:29:27 -07005347 */
Christopher Tateaa036a22014-05-19 16:33:27 -07005348 @Deprecated
5349 public static final String INSTALL_NON_MARKET_APPS = Secure.INSTALL_NON_MARKET_APPS;
Christopher Tate06efb532012-08-24 15:29:27 -07005350
5351 /**
Jinsuk Kimb3d91772014-07-10 12:48:54 +09005352 * Whether HDMI control shall be enabled. If disabled, no CEC/MHL command will be
5353 * sent or processed. (0 = false, 1 = true)
5354 * @hide
5355 */
5356 public static final String HDMI_CONTROL_ENABLED = "hdmi_control_enabled";
5357
5358 /**
5359 * Whether HDMI system audio is enabled. If enabled, TV internal speaker is muted,
5360 * and the output is redirected to AV Receiver connected via
5361 * {@Global#HDMI_SYSTEM_AUDIO_OUTPUT}.
5362 * @hide
5363 */
5364 public static final String HDMI_SYSTEM_AUDIO_ENABLED = "hdmi_system_audio_enabled";
5365
5366 /**
Jinsuk Kimb3d91772014-07-10 12:48:54 +09005367 * Whether TV will automatically turn on upon reception of the CEC command
5368 * &lt;Text View On&gt; or &lt;Image View On&gt;. (0 = false, 1 = true)
5369 * @hide
5370 */
5371 public static final String HDMI_CONTROL_AUTO_WAKEUP_ENABLED =
5372 "hdmi_control_auto_wakeup_enabled";
5373
5374 /**
5375 * Whether TV will also turn off other CEC devices when it goes to standby mode.
5376 * (0 = false, 1 = true)
5377 * @hide
5378 */
5379 public static final String HDMI_CONTROL_AUTO_DEVICE_OFF_ENABLED =
5380 "hdmi_control_auto_device_off_enabled";
5381
5382 /**
5383 * Whether TV will switch to MHL port when a mobile device is plugged in.
5384 * (0 = false, 1 = true)
5385 * @hide
5386 */
5387 public static final String MHL_INPUT_SWITCHING_ENABLED = "mhl_input_switching_enabled";
5388
5389 /**
5390 * Whether TV will charge the mobile device connected at MHL port. (0 = false, 1 = true)
5391 * @hide
5392 */
5393 public static final String MHL_POWER_CHARGE_ENABLED = "mhl_power_charge_enabled";
5394
5395 /**
Christopher Tate06efb532012-08-24 15:29:27 -07005396 * Whether mobile data connections are allowed by the user. See
5397 * ConnectivityManager for more info.
5398 * @hide
5399 */
5400 public static final String MOBILE_DATA = "mobile_data";
5401
5402 /** {@hide} */
5403 public static final String NETSTATS_ENABLED = "netstats_enabled";
5404 /** {@hide} */
5405 public static final String NETSTATS_POLL_INTERVAL = "netstats_poll_interval";
5406 /** {@hide} */
5407 public static final String NETSTATS_TIME_CACHE_MAX_AGE = "netstats_time_cache_max_age";
5408 /** {@hide} */
5409 public static final String NETSTATS_GLOBAL_ALERT_BYTES = "netstats_global_alert_bytes";
5410 /** {@hide} */
5411 public static final String NETSTATS_SAMPLE_ENABLED = "netstats_sample_enabled";
5412 /** {@hide} */
5413 public static final String NETSTATS_REPORT_XT_OVER_DEV = "netstats_report_xt_over_dev";
5414
5415 /** {@hide} */
5416 public static final String NETSTATS_DEV_BUCKET_DURATION = "netstats_dev_bucket_duration";
5417 /** {@hide} */
5418 public static final String NETSTATS_DEV_PERSIST_BYTES = "netstats_dev_persist_bytes";
5419 /** {@hide} */
5420 public static final String NETSTATS_DEV_ROTATE_AGE = "netstats_dev_rotate_age";
5421 /** {@hide} */
5422 public static final String NETSTATS_DEV_DELETE_AGE = "netstats_dev_delete_age";
5423
5424 /** {@hide} */
5425 public static final String NETSTATS_UID_BUCKET_DURATION = "netstats_uid_bucket_duration";
5426 /** {@hide} */
5427 public static final String NETSTATS_UID_PERSIST_BYTES = "netstats_uid_persist_bytes";
5428 /** {@hide} */
5429 public static final String NETSTATS_UID_ROTATE_AGE = "netstats_uid_rotate_age";
5430 /** {@hide} */
5431 public static final String NETSTATS_UID_DELETE_AGE = "netstats_uid_delete_age";
5432
5433 /** {@hide} */
5434 public static final String NETSTATS_UID_TAG_BUCKET_DURATION = "netstats_uid_tag_bucket_duration";
5435 /** {@hide} */
5436 public static final String NETSTATS_UID_TAG_PERSIST_BYTES = "netstats_uid_tag_persist_bytes";
5437 /** {@hide} */
5438 public static final String NETSTATS_UID_TAG_ROTATE_AGE = "netstats_uid_tag_rotate_age";
5439 /** {@hide} */
5440 public static final String NETSTATS_UID_TAG_DELETE_AGE = "netstats_uid_tag_delete_age";
5441
5442 /**
5443 * User preference for which network(s) should be used. Only the
5444 * connectivity service should touch this.
5445 */
5446 public static final String NETWORK_PREFERENCE = "network_preference";
5447
5448 /**
Jeff Davidsondd6fd1e2014-04-14 15:14:30 -07005449 * Which package name to use for network scoring. If null, or if the package is not a valid
5450 * scorer app, external network scores will neither be requested nor accepted.
5451 * @hide
5452 */
5453 public static final String NETWORK_SCORER_APP = "network_scorer_app";
5454
5455 /**
Christopher Tate06efb532012-08-24 15:29:27 -07005456 * If the NITZ_UPDATE_DIFF time is exceeded then an automatic adjustment
5457 * to SystemClock will be allowed even if NITZ_UPDATE_SPACING has not been
5458 * exceeded.
5459 * @hide
5460 */
5461 public static final String NITZ_UPDATE_DIFF = "nitz_update_diff";
5462
5463 /**
5464 * The length of time in milli-seconds that automatic small adjustments to
5465 * SystemClock are ignored if NITZ_UPDATE_DIFF is not exceeded.
5466 * @hide
5467 */
5468 public static final String NITZ_UPDATE_SPACING = "nitz_update_spacing";
5469
5470 /** Preferred NTP server. {@hide} */
5471 public static final String NTP_SERVER = "ntp_server";
5472 /** Timeout in milliseconds to wait for NTP server. {@hide} */
5473 public static final String NTP_TIMEOUT = "ntp_timeout";
5474
5475 /**
rich cannings4d8fc792012-09-07 14:43:43 -07005476 * Whether the package manager should send package verification broadcasts for verifiers to
5477 * review apps prior to installation.
5478 * 1 = request apps to be verified prior to installation, if a verifier exists.
5479 * 0 = do not verify apps before installation
rich cannings4e5753f2012-09-19 16:03:56 -07005480 * @hide
rich cannings4d8fc792012-09-07 14:43:43 -07005481 */
5482 public static final String PACKAGE_VERIFIER_ENABLE = "package_verifier_enable";
5483
5484 /** Timeout for package verification.
rich cannings4e5753f2012-09-19 16:03:56 -07005485 * @hide */
rich cannings4d8fc792012-09-07 14:43:43 -07005486 public static final String PACKAGE_VERIFIER_TIMEOUT = "verifier_timeout";
5487
5488 /** Default response code for package verification.
rich cannings4e5753f2012-09-19 16:03:56 -07005489 * @hide */
rich cannings4d8fc792012-09-07 14:43:43 -07005490 public static final String PACKAGE_VERIFIER_DEFAULT_RESPONSE = "verifier_default_response";
5491
rich cannings4e5753f2012-09-19 16:03:56 -07005492 /**
5493 * Show package verification setting in the Settings app.
rich canningse6686b32012-09-16 14:02:20 -07005494 * 1 = show (default)
5495 * 0 = hide
rich cannings4e5753f2012-09-19 16:03:56 -07005496 * @hide
rich canningse6686b32012-09-16 14:02:20 -07005497 */
5498 public static final String PACKAGE_VERIFIER_SETTING_VISIBLE = "verifier_setting_visible";
5499
rich cannings4d8fc792012-09-07 14:43:43 -07005500 /**
rich cannings4e5753f2012-09-19 16:03:56 -07005501 * Run package verificaiton on apps installed through ADB/ADT/USB
5502 * 1 = perform package verification on ADB installs (default)
5503 * 0 = bypass package verification on ADB installs
5504 * @hide
5505 */
5506 public static final String PACKAGE_VERIFIER_INCLUDE_ADB = "verifier_verify_adb_installs";
5507
5508 /**
Christopher Tate06efb532012-08-24 15:29:27 -07005509 * The interval in milliseconds at which to check packet counts on the
5510 * mobile data interface when screen is on, to detect possible data
5511 * connection problems.
5512 * @hide
5513 */
5514 public static final String PDP_WATCHDOG_POLL_INTERVAL_MS =
5515 "pdp_watchdog_poll_interval_ms";
5516
5517 /**
5518 * The interval in milliseconds at which to check packet counts on the
5519 * mobile data interface when screen is off, to detect possible data
5520 * connection problems.
5521 * @hide
5522 */
5523 public static final String PDP_WATCHDOG_LONG_POLL_INTERVAL_MS =
5524 "pdp_watchdog_long_poll_interval_ms";
5525
5526 /**
5527 * The interval in milliseconds at which to check packet counts on the
5528 * mobile data interface after {@link #PDP_WATCHDOG_TRIGGER_PACKET_COUNT}
5529 * outgoing packets has been reached without incoming packets.
5530 * @hide
5531 */
5532 public static final String PDP_WATCHDOG_ERROR_POLL_INTERVAL_MS =
5533 "pdp_watchdog_error_poll_interval_ms";
5534
5535 /**
5536 * The number of outgoing packets sent without seeing an incoming packet
5537 * that triggers a countdown (of {@link #PDP_WATCHDOG_ERROR_POLL_COUNT}
5538 * device is logged to the event log
5539 * @hide
5540 */
5541 public static final String PDP_WATCHDOG_TRIGGER_PACKET_COUNT =
5542 "pdp_watchdog_trigger_packet_count";
5543
5544 /**
5545 * The number of polls to perform (at {@link #PDP_WATCHDOG_ERROR_POLL_INTERVAL_MS})
5546 * after hitting {@link #PDP_WATCHDOG_TRIGGER_PACKET_COUNT} before
5547 * attempting data connection recovery.
5548 * @hide
5549 */
5550 public static final String PDP_WATCHDOG_ERROR_POLL_COUNT =
5551 "pdp_watchdog_error_poll_count";
5552
5553 /**
5554 * The number of failed PDP reset attempts before moving to something more
5555 * drastic: re-registering to the network.
5556 * @hide
5557 */
5558 public static final String PDP_WATCHDOG_MAX_PDP_RESET_FAIL_COUNT =
5559 "pdp_watchdog_max_pdp_reset_fail_count";
5560
5561 /**
5562 * A positive value indicates how often the SamplingProfiler
5563 * should take snapshots. Zero value means SamplingProfiler
5564 * is disabled.
5565 *
5566 * @hide
5567 */
5568 public static final String SAMPLING_PROFILER_MS = "sampling_profiler_ms";
5569
5570 /**
5571 * URL to open browser on to allow user to manage a prepay account
5572 * @hide
5573 */
5574 public static final String SETUP_PREPAID_DATA_SERVICE_URL =
5575 "setup_prepaid_data_service_url";
5576
5577 /**
5578 * URL to attempt a GET on to see if this is a prepay device
5579 * @hide
5580 */
5581 public static final String SETUP_PREPAID_DETECTION_TARGET_URL =
5582 "setup_prepaid_detection_target_url";
5583
5584 /**
5585 * Host to check for a redirect to after an attempt to GET
5586 * SETUP_PREPAID_DETECTION_TARGET_URL. (If we redirected there,
5587 * this is a prepaid device with zero balance.)
5588 * @hide
5589 */
5590 public static final String SETUP_PREPAID_DETECTION_REDIR_HOST =
5591 "setup_prepaid_detection_redir_host";
5592
5593 /**
Jake Hamby76a61422012-09-06 17:40:21 -07005594 * The interval in milliseconds at which to check the number of SMS sent out without asking
5595 * for use permit, to limit the un-authorized SMS usage.
5596 *
5597 * @hide
5598 */
5599 public static final String SMS_OUTGOING_CHECK_INTERVAL_MS =
5600 "sms_outgoing_check_interval_ms";
5601
5602 /**
5603 * The number of outgoing SMS sent without asking for user permit (of {@link
5604 * #SMS_OUTGOING_CHECK_INTERVAL_MS}
5605 *
5606 * @hide
5607 */
5608 public static final String SMS_OUTGOING_CHECK_MAX_COUNT =
5609 "sms_outgoing_check_max_count";
5610
5611 /**
5612 * Used to disable SMS short code confirmation - defaults to true.
Robert Greenwalt026efcc2012-09-24 10:03:21 -07005613 * True indcates we will do the check, etc. Set to false to disable.
Jake Hamby76a61422012-09-06 17:40:21 -07005614 * @see com.android.internal.telephony.SmsUsageMonitor
5615 * @hide
5616 */
5617 public static final String SMS_SHORT_CODE_CONFIRMATION = "sms_short_code_confirmation";
5618
Robert Greenwalt026efcc2012-09-24 10:03:21 -07005619 /**
5620 * Used to select which country we use to determine premium sms codes.
5621 * One of com.android.internal.telephony.SMSDispatcher.PREMIUM_RULE_USE_SIM,
5622 * com.android.internal.telephony.SMSDispatcher.PREMIUM_RULE_USE_NETWORK,
5623 * or com.android.internal.telephony.SMSDispatcher.PREMIUM_RULE_USE_BOTH.
5624 * @hide
5625 */
5626 public static final String SMS_SHORT_CODE_RULE = "sms_short_code_rule";
5627
Jake Hamby76a61422012-09-06 17:40:21 -07005628 /**
JP Abgrall32d1ac4d2014-02-21 12:05:20 -08005629 * Used to select TCP's default initial receiver window size in segments - defaults to a build config value
5630 * @hide
5631 */
5632 public static final String TCP_DEFAULT_INIT_RWND = "tcp_default_init_rwnd";
5633
5634 /**
Christopher Tate06efb532012-08-24 15:29:27 -07005635 * Used to disable Tethering on a device - defaults to true
5636 * @hide
5637 */
5638 public static final String TETHER_SUPPORTED = "tether_supported";
5639
5640 /**
5641 * Used to require DUN APN on the device or not - defaults to a build config value
5642 * which defaults to false
5643 * @hide
5644 */
5645 public static final String TETHER_DUN_REQUIRED = "tether_dun_required";
5646
5647 /**
5648 * Used to hold a gservices-provisioned apn value for DUN. If set, or the
5649 * corresponding build config values are set it will override the APN DB
5650 * values.
5651 * Consists of a comma seperated list of strings:
5652 * "name,apn,proxy,port,username,password,server,mmsc,mmsproxy,mmsport,mcc,mnc,auth,type"
5653 * note that empty fields can be ommitted: "name,apn,,,,,,,,,310,260,,DUN"
5654 * @hide
5655 */
5656 public static final String TETHER_DUN_APN = "tether_dun_apn";
5657
5658 /**
Christopher Tate06efb532012-08-24 15:29:27 -07005659 * USB Mass Storage Enabled
5660 */
5661 public static final String USB_MASS_STORAGE_ENABLED = "usb_mass_storage_enabled";
5662
5663 /**
5664 * If this setting is set (to anything), then all references
5665 * to Gmail on the device must change to Google Mail.
5666 */
5667 public static final String USE_GOOGLE_MAIL = "use_google_mail";
5668
Selim Gurun178201f2014-05-16 11:38:44 -07005669 /**
5670 * Webview Data reduction proxy key.
5671 * @hide
5672 */
5673 public static final String WEBVIEW_DATA_REDUCTION_PROXY_KEY =
5674 "webview_data_reduction_proxy_key";
5675
Christopher Tate06efb532012-08-24 15:29:27 -07005676 /**
Jeff Brown89d55462012-09-19 11:33:42 -07005677 * Whether Wifi display is enabled/disabled
5678 * 0=disabled. 1=enabled.
5679 * @hide
5680 */
5681 public static final String WIFI_DISPLAY_ON = "wifi_display_on";
5682
5683 /**
Chong Zhang1f3ecaa2013-05-03 15:55:36 -07005684 * Whether Wifi display certification mode is enabled/disabled
5685 * 0=disabled. 1=enabled.
5686 * @hide
5687 */
5688 public static final String WIFI_DISPLAY_CERTIFICATION_ON =
5689 "wifi_display_certification_on";
5690
5691 /**
Chong Zhange38af812013-08-29 17:25:17 -07005692 * WPS Configuration method used by Wifi display, this setting only
5693 * takes effect when WIFI_DISPLAY_CERTIFICATION_ON is 1 (enabled).
5694 *
5695 * Possible values are:
5696 *
5697 * WpsInfo.INVALID: use default WPS method chosen by framework
5698 * WpsInfo.PBC : use Push button
5699 * WpsInfo.KEYPAD : use Keypad
5700 * WpsInfo.DISPLAY: use Display
5701 * @hide
5702 */
5703 public static final String WIFI_DISPLAY_WPS_CONFIG =
5704 "wifi_display_wps_config";
5705
5706 /**
Christopher Tate06efb532012-08-24 15:29:27 -07005707 * Whether to notify the user of open networks.
5708 * <p>
5709 * If not connected and the scan results have an open network, we will
5710 * put this notification up. If we attempt to connect to a network or
5711 * the open network(s) disappear, we remove the notification. When we
5712 * show the notification, we will not show it again for
5713 * {@link android.provider.Settings.Secure#WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY} time.
5714 */
5715 public static final String WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON =
5716 "wifi_networks_available_notification_on";
5717 /**
5718 * {@hide}
5719 */
5720 public static final String WIMAX_NETWORKS_AVAILABLE_NOTIFICATION_ON =
5721 "wimax_networks_available_notification_on";
5722
5723 /**
5724 * Delay (in seconds) before repeating the Wi-Fi networks available notification.
5725 * Connecting to a network will reset the timer.
5726 */
5727 public static final String WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY =
5728 "wifi_networks_available_repeat_delay";
5729
5730 /**
Robert Greenwalt3ea0c992013-10-03 21:13:49 +00005731 * 802.11 country code in ISO 3166 format
5732 * @hide
5733 */
5734 public static final String WIFI_COUNTRY_CODE = "wifi_country_code";
5735
5736 /**
Christopher Tate06efb532012-08-24 15:29:27 -07005737 * The interval in milliseconds to issue wake up scans when wifi needs
5738 * to connect. This is necessary to connect to an access point when
5739 * device is on the move and the screen is off.
5740 * @hide
5741 */
5742 public static final String WIFI_FRAMEWORK_SCAN_INTERVAL_MS =
5743 "wifi_framework_scan_interval_ms";
5744
5745 /**
5746 * The interval in milliseconds after which Wi-Fi is considered idle.
5747 * When idle, it is possible for the device to be switched from Wi-Fi to
5748 * the mobile data network.
5749 * @hide
5750 */
5751 public static final String WIFI_IDLE_MS = "wifi_idle_ms";
5752
5753 /**
5754 * When the number of open networks exceeds this number, the
5755 * least-recently-used excess networks will be removed.
5756 */
5757 public static final String WIFI_NUM_OPEN_NETWORKS_KEPT = "wifi_num_open_networks_kept";
5758
5759 /**
5760 * Whether the Wi-Fi should be on. Only the Wi-Fi service should touch this.
5761 */
5762 public static final String WIFI_ON = "wifi_on";
5763
5764 /**
Irfan Sheriff11aefad2013-03-06 07:57:41 -08005765 * Setting to allow scans to be enabled even wifi is turned off for connectivity.
5766 * @hide
5767 */
5768 public static final String WIFI_SCAN_ALWAYS_AVAILABLE =
5769 "wifi_scan_always_enabled";
5770
5771 /**
Christopher Tate06efb532012-08-24 15:29:27 -07005772 * Used to save the Wifi_ON state prior to tethering.
5773 * This state will be checked to restore Wifi after
5774 * the user turns off tethering.
5775 *
5776 * @hide
5777 */
5778 public static final String WIFI_SAVED_STATE = "wifi_saved_state";
5779
5780 /**
5781 * The interval in milliseconds to scan as used by the wifi supplicant
5782 * @hide
5783 */
5784 public static final String WIFI_SUPPLICANT_SCAN_INTERVAL_MS =
5785 "wifi_supplicant_scan_interval_ms";
5786
vandwalle7c3606c2014-03-31 19:12:07 -07005787 /**
5788 * whether frameworks handles wifi auto-join
5789 * @hide
5790 */
5791 public static final String WIFI_ENHANCED_AUTO_JOIN =
5792 "wifi_enhanced_auto_join";
5793
5794 /**
5795 * whether settings show RSSI
5796 * @hide
5797 */
5798 public static final String WIFI_NETWORK_SHOW_RSSI =
5799 "wifi_network_show_rssi";
5800
5801 /**
Irfan Sheriff3809f502012-09-17 16:04:57 -07005802 * The interval in milliseconds to scan at supplicant when p2p is connected
5803 * @hide
5804 */
5805 public static final String WIFI_SCAN_INTERVAL_WHEN_P2P_CONNECTED_MS =
5806 "wifi_scan_interval_p2p_connected_ms";
5807
5808 /**
Christopher Tate06efb532012-08-24 15:29:27 -07005809 * Whether the Wi-Fi watchdog is enabled.
5810 */
5811 public static final String WIFI_WATCHDOG_ON = "wifi_watchdog_on";
5812
5813 /**
Christopher Tate06efb532012-08-24 15:29:27 -07005814 * Setting to turn off poor network avoidance on Wi-Fi. Feature is enabled by default and
5815 * the setting needs to be set to 0 to disable it.
5816 * @hide
5817 */
5818 public static final String WIFI_WATCHDOG_POOR_NETWORK_TEST_ENABLED =
5819 "wifi_watchdog_poor_network_test_enabled";
5820
5821 /**
5822 * Setting to turn on suspend optimizations at screen off on Wi-Fi. Enabled by default and
5823 * needs to be set to 0 to disable it.
5824 * @hide
5825 */
5826 public static final String WIFI_SUSPEND_OPTIMIZATIONS_ENABLED =
5827 "wifi_suspend_optimizations_enabled";
5828
5829 /**
5830 * The maximum number of times we will retry a connection to an access
5831 * point for which we have failed in acquiring an IP address from DHCP.
5832 * A value of N means that we will make N+1 connection attempts in all.
5833 */
5834 public static final String WIFI_MAX_DHCP_RETRY_COUNT = "wifi_max_dhcp_retry_count";
5835
5836 /**
5837 * Maximum amount of time in milliseconds to hold a wakelock while waiting for mobile
5838 * data connectivity to be established after a disconnect from Wi-Fi.
5839 */
5840 public static final String WIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MS =
5841 "wifi_mobile_data_transition_wakelock_timeout_ms";
5842
5843 /**
5844 * The operational wifi frequency band
5845 * Set to one of {@link WifiManager#WIFI_FREQUENCY_BAND_AUTO},
5846 * {@link WifiManager#WIFI_FREQUENCY_BAND_5GHZ} or
5847 * {@link WifiManager#WIFI_FREQUENCY_BAND_2GHZ}
5848 *
5849 * @hide
5850 */
5851 public static final String WIFI_FREQUENCY_BAND = "wifi_frequency_band";
5852
5853 /**
5854 * The Wi-Fi peer-to-peer device name
5855 * @hide
5856 */
5857 public static final String WIFI_P2P_DEVICE_NAME = "wifi_p2p_device_name";
5858
5859 /**
Robert Greenwaltc12783a2013-05-16 12:48:20 -07005860 * The min time between wifi disable and wifi enable
5861 * @hide
5862 */
5863 public static final String WIFI_REENABLE_DELAY_MS = "wifi_reenable_delay";
5864
5865 /**
Christopher Tatec868b642012-09-12 17:41:04 -07005866 * The number of milliseconds to delay when checking for data stalls during
5867 * non-aggressive detection. (screen is turned off.)
5868 * @hide
5869 */
5870 public static final String DATA_STALL_ALARM_NON_AGGRESSIVE_DELAY_IN_MS =
5871 "data_stall_alarm_non_aggressive_delay_in_ms";
5872
5873 /**
5874 * The number of milliseconds to delay when checking for data stalls during
5875 * aggressive detection. (screen on or suspected data stall)
5876 * @hide
5877 */
5878 public static final String DATA_STALL_ALARM_AGGRESSIVE_DELAY_IN_MS =
5879 "data_stall_alarm_aggressive_delay_in_ms";
5880
5881 /**
Wink Savillece1e3792013-09-03 16:41:44 -07005882 * The number of milliseconds to allow the provisioning apn to remain active
5883 * @hide
5884 */
5885 public static final String PROVISIONING_APN_ALARM_DELAY_IN_MS =
5886 "provisioning_apn_alarm_delay_in_ms";
5887
5888 /**
Christopher Tatec868b642012-09-12 17:41:04 -07005889 * The interval in milliseconds at which to check gprs registration
5890 * after the first registration mismatch of gprs and voice service,
5891 * to detect possible data network registration problems.
5892 *
5893 * @hide
5894 */
5895 public static final String GPRS_REGISTER_CHECK_PERIOD_MS =
5896 "gprs_register_check_period_ms";
5897
5898 /**
Christopher Tate06efb532012-08-24 15:29:27 -07005899 * Nonzero causes Log.wtf() to crash.
5900 * @hide
5901 */
5902 public static final String WTF_IS_FATAL = "wtf_is_fatal";
5903
Eric Laurentbc0fab1f2012-09-19 11:24:41 -07005904 /**
5905 * Ringer mode. This is used internally, changing this value will not
5906 * change the ringer mode. See AudioManager.
5907 */
5908 public static final String MODE_RINGER = "mode_ringer";
Christopher Tate06efb532012-08-24 15:29:27 -07005909
Jeff Brownd4935962012-09-25 13:27:20 -07005910 /**
5911 * Overlay display devices setting.
5912 * The associated value is a specially formatted string that describes the
5913 * size and density of simulated secondary display devices.
5914 * <p>
5915 * Format: {width}x{height}/{dpi};...
5916 * </p><p>
5917 * Example:
5918 * <ul>
5919 * <li><code>1280x720/213</code>: make one overlay that is 1280x720 at 213dpi.</li>
5920 * <li><code>1920x1080/320;1280x720/213</code>: make two overlays, the first
5921 * at 1080p and the second at 720p.</li>
5922 * <li>If the value is empty, then no overlay display devices are created.</li>
5923 * </ul></p>
5924 *
5925 * @hide
5926 */
5927 public static final String OVERLAY_DISPLAY_DEVICES = "overlay_display_devices";
Christopher Tate06efb532012-08-24 15:29:27 -07005928
Jeff Sharkey625239a2012-09-26 22:03:49 -07005929 /**
5930 * Threshold values for the duration and level of a discharge cycle,
5931 * under which we log discharge cycle info.
5932 *
5933 * @hide
5934 */
5935 public static final String
5936 BATTERY_DISCHARGE_DURATION_THRESHOLD = "battery_discharge_duration_threshold";
5937
5938 /** @hide */
5939 public static final String BATTERY_DISCHARGE_THRESHOLD = "battery_discharge_threshold";
5940
5941 /**
5942 * Flag for allowing ActivityManagerService to send ACTION_APP_ERROR
5943 * intents on application crashes and ANRs. If this is disabled, the
5944 * crash/ANR dialog will never display the "Report" button.
5945 * <p>
5946 * Type: int (0 = disallow, 1 = allow)
5947 *
5948 * @hide
5949 */
5950 public static final String SEND_ACTION_APP_ERROR = "send_action_app_error";
5951
5952 /**
5953 * Maximum age of entries kept by {@link DropBoxManager}.
5954 *
5955 * @hide
5956 */
5957 public static final String DROPBOX_AGE_SECONDS = "dropbox_age_seconds";
5958
5959 /**
5960 * Maximum number of entry files which {@link DropBoxManager} will keep
5961 * around.
5962 *
5963 * @hide
5964 */
5965 public static final String DROPBOX_MAX_FILES = "dropbox_max_files";
5966
5967 /**
5968 * Maximum amount of disk space used by {@link DropBoxManager} no matter
5969 * what.
5970 *
5971 * @hide
5972 */
5973 public static final String DROPBOX_QUOTA_KB = "dropbox_quota_kb";
5974
5975 /**
5976 * Percent of free disk (excluding reserve) which {@link DropBoxManager}
5977 * will use.
5978 *
5979 * @hide
5980 */
5981 public static final String DROPBOX_QUOTA_PERCENT = "dropbox_quota_percent";
5982
5983 /**
5984 * Percent of total disk which {@link DropBoxManager} will never dip
5985 * into.
5986 *
5987 * @hide
5988 */
5989 public static final String DROPBOX_RESERVE_PERCENT = "dropbox_reserve_percent";
5990
5991 /**
5992 * Prefix for per-tag dropbox disable/enable settings.
5993 *
5994 * @hide
5995 */
5996 public static final String DROPBOX_TAG_PREFIX = "dropbox:";
5997
5998 /**
5999 * Lines of logcat to include with system crash/ANR/etc. reports, as a
6000 * prefix of the dropbox tag of the report type. For example,
6001 * "logcat_for_system_server_anr" controls the lines of logcat captured
6002 * with system server ANR reports. 0 to disable.
6003 *
6004 * @hide
6005 */
6006 public static final String ERROR_LOGCAT_PREFIX = "logcat_for_";
6007
6008 /**
6009 * The interval in minutes after which the amount of free storage left
6010 * on the device is logged to the event log
6011 *
6012 * @hide
6013 */
6014 public static final String SYS_FREE_STORAGE_LOG_INTERVAL = "sys_free_storage_log_interval";
6015
6016 /**
6017 * Threshold for the amount of change in disk free space required to
6018 * report the amount of free space. Used to prevent spamming the logs
6019 * when the disk free space isn't changing frequently.
6020 *
6021 * @hide
6022 */
6023 public static final String
6024 DISK_FREE_CHANGE_REPORTING_THRESHOLD = "disk_free_change_reporting_threshold";
6025
6026 /**
6027 * Minimum percentage of free storage on the device that is used to
6028 * determine if the device is running low on storage. The default is 10.
6029 * <p>
6030 * Say this value is set to 10, the device is considered running low on
6031 * storage if 90% or more of the device storage is filled up.
6032 *
6033 * @hide
6034 */
6035 public static final String
6036 SYS_STORAGE_THRESHOLD_PERCENTAGE = "sys_storage_threshold_percentage";
6037
6038 /**
6039 * Maximum byte size of the low storage threshold. This is to ensure
6040 * that {@link #SYS_STORAGE_THRESHOLD_PERCENTAGE} does not result in an
6041 * overly large threshold for large storage devices. Currently this must
6042 * be less than 2GB. This default is 500MB.
6043 *
6044 * @hide
6045 */
6046 public static final String
6047 SYS_STORAGE_THRESHOLD_MAX_BYTES = "sys_storage_threshold_max_bytes";
6048
6049 /**
6050 * Minimum bytes of free storage on the device before the data partition
6051 * is considered full. By default, 1 MB is reserved to avoid system-wide
6052 * SQLite disk full exceptions.
6053 *
6054 * @hide
6055 */
6056 public static final String
6057 SYS_STORAGE_FULL_THRESHOLD_BYTES = "sys_storage_full_threshold_bytes";
6058
6059 /**
6060 * The maximum reconnect delay for short network outages or when the
6061 * network is suspended due to phone use.
6062 *
6063 * @hide
6064 */
6065 public static final String
6066 SYNC_MAX_RETRY_DELAY_IN_SECONDS = "sync_max_retry_delay_in_seconds";
6067
6068 /**
6069 * The number of milliseconds to delay before sending out
6070 * {@link ConnectivityManager#CONNECTIVITY_ACTION} broadcasts.
6071 *
6072 * @hide
6073 */
6074 public static final String CONNECTIVITY_CHANGE_DELAY = "connectivity_change_delay";
6075
Vinit Deshapnde1f12cb52013-08-21 13:09:01 -07006076
6077 /**
6078 * Network sampling interval, in seconds. We'll generate link information
6079 * about bytes/packets sent and error rates based on data sampled in this interval
6080 *
6081 * @hide
6082 */
6083
6084 public static final String CONNECTIVITY_SAMPLING_INTERVAL_IN_SECONDS =
6085 "connectivity_sampling_interval_in_seconds";
6086
Jeff Sharkey625239a2012-09-26 22:03:49 -07006087 /**
Jason Monk602b2322013-07-03 17:04:33 -04006088 * The series of successively longer delays used in retrying to download PAC file.
6089 * Last delay is used between successful PAC downloads.
6090 *
6091 * @hide
6092 */
6093 public static final String PAC_CHANGE_DELAY = "pac_change_delay";
6094
6095 /**
Jeff Sharkey625239a2012-09-26 22:03:49 -07006096 * Setting to turn off captive portal detection. Feature is enabled by
6097 * default and the setting needs to be set to 0 to disable it.
6098 *
6099 * @hide
6100 */
6101 public static final String
6102 CAPTIVE_PORTAL_DETECTION_ENABLED = "captive_portal_detection_enabled";
6103
6104 /**
6105 * The server used for captive portal detection upon a new conection. A
6106 * 204 response code from the server is used for validation.
6107 *
6108 * @hide
6109 */
6110 public static final String CAPTIVE_PORTAL_SERVER = "captive_portal_server";
6111
6112 /**
6113 * Whether network service discovery is enabled.
6114 *
6115 * @hide
6116 */
6117 public static final String NSD_ON = "nsd_on";
6118
6119 /**
6120 * Let user pick default install location.
6121 *
6122 * @hide
6123 */
6124 public static final String SET_INSTALL_LOCATION = "set_install_location";
6125
6126 /**
6127 * Default install location value.
6128 * 0 = auto, let system decide
6129 * 1 = internal
6130 * 2 = sdcard
6131 * @hide
6132 */
6133 public static final String DEFAULT_INSTALL_LOCATION = "default_install_location";
6134
6135 /**
6136 * ms during which to consume extra events related to Inet connection
6137 * condition after a transtion to fully-connected
6138 *
6139 * @hide
6140 */
6141 public static final String
6142 INET_CONDITION_DEBOUNCE_UP_DELAY = "inet_condition_debounce_up_delay";
6143
6144 /**
6145 * ms during which to consume extra events related to Inet connection
6146 * condtion after a transtion to partly-connected
6147 *
6148 * @hide
6149 */
6150 public static final String
6151 INET_CONDITION_DEBOUNCE_DOWN_DELAY = "inet_condition_debounce_down_delay";
6152
6153 /** {@hide} */
6154 public static final String
6155 READ_EXTERNAL_STORAGE_ENFORCED_DEFAULT = "read_external_storage_enforced_default";
6156
6157 /**
6158 * Host name and port for global http proxy. Uses ':' seperator for
6159 * between host and port.
6160 */
6161 public static final String HTTP_PROXY = "http_proxy";
6162
6163 /**
6164 * Host name for global http proxy. Set via ConnectivityManager.
6165 *
6166 * @hide
6167 */
6168 public static final String GLOBAL_HTTP_PROXY_HOST = "global_http_proxy_host";
6169
6170 /**
6171 * Integer host port for global http proxy. Set via ConnectivityManager.
6172 *
6173 * @hide
6174 */
6175 public static final String GLOBAL_HTTP_PROXY_PORT = "global_http_proxy_port";
6176
6177 /**
6178 * Exclusion list for global proxy. This string contains a list of
6179 * comma-separated domains where the global proxy does not apply.
6180 * Domains should be listed in a comma- separated list. Example of
6181 * acceptable formats: ".domain1.com,my.domain2.com" Use
6182 * ConnectivityManager to set/get.
6183 *
6184 * @hide
6185 */
6186 public static final String
6187 GLOBAL_HTTP_PROXY_EXCLUSION_LIST = "global_http_proxy_exclusion_list";
6188
6189 /**
Jason Monk602b2322013-07-03 17:04:33 -04006190 * The location PAC File for the proxy.
6191 * @hide
6192 */
6193 public static final String
6194 GLOBAL_HTTP_PROXY_PAC = "global_proxy_pac_url";
6195
6196 /**
Jeff Sharkey625239a2012-09-26 22:03:49 -07006197 * Enables the UI setting to allow the user to specify the global HTTP
6198 * proxy and associated exclusion list.
6199 *
6200 * @hide
6201 */
6202 public static final String SET_GLOBAL_HTTP_PROXY = "set_global_http_proxy";
6203
6204 /**
6205 * Setting for default DNS in case nobody suggests one
6206 *
6207 * @hide
6208 */
6209 public static final String DEFAULT_DNS_SERVER = "default_dns_server";
6210
Jeff Sharkey0ac10282012-10-01 12:50:22 -07006211 /** {@hide} */
6212 public static final String
6213 BLUETOOTH_HEADSET_PRIORITY_PREFIX = "bluetooth_headset_priority_";
6214 /** {@hide} */
6215 public static final String
6216 BLUETOOTH_A2DP_SINK_PRIORITY_PREFIX = "bluetooth_a2dp_sink_priority_";
6217 /** {@hide} */
6218 public static final String
6219 BLUETOOTH_INPUT_DEVICE_PRIORITY_PREFIX = "bluetooth_input_device_priority_";
Kim Schulz0d376052013-08-22 11:18:02 +02006220 /** {@hide} */
6221 public static final String
6222 BLUETOOTH_MAP_PRIORITY_PREFIX = "bluetooth_map_priority_";
Jeff Sharkey0ac10282012-10-01 12:50:22 -07006223
6224 /**
6225 * Get the key that retrieves a bluetooth headset's priority.
6226 * @hide
6227 */
6228 public static final String getBluetoothHeadsetPriorityKey(String address) {
Elliott Hughescb64d432013-08-02 10:00:44 -07006229 return BLUETOOTH_HEADSET_PRIORITY_PREFIX + address.toUpperCase(Locale.ROOT);
Jeff Sharkey0ac10282012-10-01 12:50:22 -07006230 }
6231
6232 /**
6233 * Get the key that retrieves a bluetooth a2dp sink's priority.
6234 * @hide
6235 */
6236 public static final String getBluetoothA2dpSinkPriorityKey(String address) {
Elliott Hughescb64d432013-08-02 10:00:44 -07006237 return BLUETOOTH_A2DP_SINK_PRIORITY_PREFIX + address.toUpperCase(Locale.ROOT);
Jeff Sharkey0ac10282012-10-01 12:50:22 -07006238 }
6239
6240 /**
6241 * Get the key that retrieves a bluetooth Input Device's priority.
6242 * @hide
6243 */
6244 public static final String getBluetoothInputDevicePriorityKey(String address) {
Elliott Hughescb64d432013-08-02 10:00:44 -07006245 return BLUETOOTH_INPUT_DEVICE_PRIORITY_PREFIX + address.toUpperCase(Locale.ROOT);
Jeff Sharkey0ac10282012-10-01 12:50:22 -07006246 }
6247
Jeff Sharkey6e2bee72012-10-01 13:39:08 -07006248 /**
Kim Schulz0d376052013-08-22 11:18:02 +02006249 * Get the key that retrieves a bluetooth map priority.
6250 * @hide
6251 */
6252 public static final String getBluetoothMapPriorityKey(String address) {
6253 return BLUETOOTH_MAP_PRIORITY_PREFIX + address.toUpperCase(Locale.ROOT);
6254 }
6255 /**
Jeff Sharkey6e2bee72012-10-01 13:39:08 -07006256 * Scaling factor for normal window animations. Setting to 0 will
6257 * disable window animations.
6258 */
6259 public static final String WINDOW_ANIMATION_SCALE = "window_animation_scale";
6260
6261 /**
6262 * Scaling factor for activity transition animations. Setting to 0 will
6263 * disable window animations.
6264 */
6265 public static final String TRANSITION_ANIMATION_SCALE = "transition_animation_scale";
6266
6267 /**
6268 * Scaling factor for Animator-based animations. This affects both the
6269 * start delay and duration of all such animations. Setting to 0 will
6270 * cause animations to end immediately. The default value is 1.
6271 */
6272 public static final String ANIMATOR_DURATION_SCALE = "animator_duration_scale";
6273
6274 /**
6275 * Scaling factor for normal window animations. Setting to 0 will
6276 * disable window animations.
6277 *
6278 * @hide
6279 */
6280 public static final String FANCY_IME_ANIMATIONS = "fancy_ime_animations";
6281
6282 /**
6283 * If 0, the compatibility mode is off for all applications.
6284 * If 1, older applications run under compatibility mode.
6285 * TODO: remove this settings before code freeze (bug/1907571)
6286 * @hide
6287 */
6288 public static final String COMPATIBILITY_MODE = "compatibility_mode";
6289
6290 /**
6291 * CDMA only settings
6292 * Emergency Tone 0 = Off
6293 * 1 = Alert
6294 * 2 = Vibrate
6295 * @hide
6296 */
6297 public static final String EMERGENCY_TONE = "emergency_tone";
6298
6299 /**
6300 * CDMA only settings
6301 * Whether the auto retry is enabled. The value is
6302 * boolean (1 or 0).
6303 * @hide
6304 */
6305 public static final String CALL_AUTO_RETRY = "call_auto_retry";
6306
6307 /**
6308 * The preferred network mode 7 = Global
6309 * 6 = EvDo only
6310 * 5 = CDMA w/o EvDo
6311 * 4 = CDMA / EvDo auto
6312 * 3 = GSM / WCDMA auto
6313 * 2 = WCDMA only
6314 * 1 = GSM only
6315 * 0 = GSM / WCDMA preferred
6316 * @hide
6317 */
6318 public static final String PREFERRED_NETWORK_MODE =
6319 "preferred_network_mode";
6320
6321 /**
Jeff Sharkey6e2bee72012-10-01 13:39:08 -07006322 * Name of an application package to be debugged.
6323 */
6324 public static final String DEBUG_APP = "debug_app";
6325
6326 /**
6327 * If 1, when launching DEBUG_APP it will wait for the debugger before
6328 * starting user code. If 0, it will run normally.
6329 */
6330 public static final String WAIT_FOR_DEBUGGER = "wait_for_debugger";
6331
6332 /**
6333 * Control whether the process CPU usage meter should be shown.
6334 */
6335 public static final String SHOW_PROCESSES = "show_processes";
6336
6337 /**
Ruchi Kandoi62b8a492014-04-17 18:01:40 -07006338 * If 1 low power mode is enabled.
6339 * @hide
6340 */
6341 public static final String LOW_POWER_MODE = "low_power";
6342
John Spurlockf8f524c2014-06-10 14:47:29 -04006343 /**
6344 * Battery level [1-99] at which low power mode automatically turns on.
Dianne Hackborn14272302014-06-10 23:13:02 -07006345 * If 0, it will not automatically turn on.
John Spurlockf8f524c2014-06-10 14:47:29 -04006346 * @hide
6347 */
6348 public static final String LOW_POWER_MODE_TRIGGER_LEVEL = "low_power_trigger_level";
6349
Ruchi Kandoi62b8a492014-04-17 18:01:40 -07006350 /**
Jeff Sharkey6e2bee72012-10-01 13:39:08 -07006351 * If 1, the activity manager will aggressively finish activities and
6352 * processes as soon as they are no longer needed. If 0, the normal
6353 * extended lifetime is used.
6354 */
Dianne Hackborn89ad4562014-08-24 16:45:38 -07006355 public static final String ALWAYS_FINISH_ACTIVITIES = "always_finish_activities";
Jeff Sharkey6e2bee72012-10-01 13:39:08 -07006356
Christopher Tate66488d62012-10-02 11:58:01 -07006357 /**
Eric Laurent7ee1e4f2012-10-26 18:11:21 -07006358 * Use Dock audio output for media:
6359 * 0 = disabled
6360 * 1 = enabled
6361 * @hide
6362 */
6363 public static final String DOCK_AUDIO_MEDIA_ENABLED = "dock_audio_media_enabled";
6364
6365 /**
Eric Laurent05274f32012-11-29 12:48:18 -08006366 * Persisted safe headphone volume management state by AudioService
6367 * @hide
6368 */
6369 public static final String AUDIO_SAFE_VOLUME_STATE = "audio_safe_volume_state";
6370
6371 /**
Geremy Condraa0735112013-03-26 21:49:26 -07006372 * URL for tzinfo (time zone) updates
6373 * @hide
6374 */
6375 public static final String TZINFO_UPDATE_CONTENT_URL = "tzinfo_content_url";
6376
6377 /**
6378 * URL for tzinfo (time zone) update metadata
6379 * @hide
6380 */
6381 public static final String TZINFO_UPDATE_METADATA_URL = "tzinfo_metadata_url";
6382
6383 /**
6384 * URL for selinux (mandatory access control) updates
6385 * @hide
6386 */
6387 public static final String SELINUX_UPDATE_CONTENT_URL = "selinux_content_url";
6388
6389 /**
6390 * URL for selinux (mandatory access control) update metadata
6391 * @hide
6392 */
6393 public static final String SELINUX_UPDATE_METADATA_URL = "selinux_metadata_url";
6394
6395 /**
6396 * URL for sms short code updates
6397 * @hide
6398 */
6399 public static final String SMS_SHORT_CODES_UPDATE_CONTENT_URL =
6400 "sms_short_codes_content_url";
6401
6402 /**
6403 * URL for sms short code update metadata
6404 * @hide
6405 */
6406 public static final String SMS_SHORT_CODES_UPDATE_METADATA_URL =
6407 "sms_short_codes_metadata_url";
6408
6409 /**
6410 * URL for cert pinlist updates
6411 * @hide
6412 */
6413 public static final String CERT_PIN_UPDATE_CONTENT_URL = "cert_pin_content_url";
6414
6415 /**
6416 * URL for cert pinlist updates
6417 * @hide
6418 */
6419 public static final String CERT_PIN_UPDATE_METADATA_URL = "cert_pin_metadata_url";
6420
Geremy Condra757ee522013-03-29 16:39:45 -07006421 /**
Ben Gruver633dc9b2013-04-04 12:05:49 -07006422 * URL for intent firewall updates
6423 * @hide
6424 */
6425 public static final String INTENT_FIREWALL_UPDATE_CONTENT_URL =
6426 "intent_firewall_content_url";
6427
6428 /**
6429 * URL for intent firewall update metadata
6430 * @hide
6431 */
6432 public static final String INTENT_FIREWALL_UPDATE_METADATA_URL =
6433 "intent_firewall_metadata_url";
6434
6435 /**
Geremy Condra4e7f7e82013-03-26 21:09:01 -07006436 * SELinux enforcement status. If 0, permissive; if 1, enforcing.
6437 * @hide
6438 */
6439 public static final String SELINUX_STATUS = "selinux_status";
6440
Geremy Condraa0735112013-03-26 21:49:26 -07006441 /**
Amith Yamasanid8415f42013-08-07 20:15:10 -07006442 * Developer setting to force RTL layout.
6443 * @hide
6444 */
6445 public static final String DEVELOPMENT_FORCE_RTL = "debug.force_rtl";
6446
6447 /**
Daniel Sandlerdea64622013-09-23 16:05:57 -04006448 * Milliseconds after screen-off after which low battery sounds will be silenced.
6449 *
6450 * If zero, battery sounds will always play.
6451 * Defaults to @integer/def_low_battery_sound_timeout in SettingsProvider.
6452 *
6453 * @hide
6454 */
6455 public static final String LOW_BATTERY_SOUND_TIMEOUT = "low_battery_sound_timeout";
6456
6457 /**
Evan Charltoncc7b0432014-01-14 14:47:11 -08006458 * Milliseconds to wait before bouncing Wi-Fi after settings is restored. Note that after
Dianne Hackborna3fb40d2014-08-12 15:06:50 -07006459 * the caller is done with this, they should call {@link ContentResolver#delete} to
Evan Charltoncc7b0432014-01-14 14:47:11 -08006460 * clean up any value that they may have written.
6461 *
6462 * @hide
6463 */
6464 public static final String WIFI_BOUNCE_DELAY_OVERRIDE_MS = "wifi_bounce_delay_override_ms";
6465
John Spurlockc6d1c602014-01-17 15:22:06 -05006466 /**
6467 * Defines global runtime overrides to window policy.
6468 *
6469 * See {@link com.android.internal.policy.impl.PolicyControl} for value format.
6470 *
6471 * @hide
6472 */
6473 public static final String POLICY_CONTROL = "policy_control";
Evan Charltoncc7b0432014-01-14 14:47:11 -08006474
6475 /**
John Spurlockae641c92014-06-30 18:11:40 -04006476 * Defines global zen mode. ZEN_MODE_OFF, ZEN_MODE_IMPORTANT_INTERRUPTIONS,
6477 * or ZEN_MODE_NO_INTERRUPTIONS.
John Spurlocke677d712014-02-13 12:52:19 -05006478 *
6479 * @hide
6480 */
6481 public static final String ZEN_MODE = "zen_mode";
6482
6483 /** @hide */ public static final int ZEN_MODE_OFF = 0;
John Spurlockae641c92014-06-30 18:11:40 -04006484 /** @hide */ public static final int ZEN_MODE_IMPORTANT_INTERRUPTIONS = 1;
6485 /** @hide */ public static final int ZEN_MODE_NO_INTERRUPTIONS = 2;
John Spurlocke677d712014-02-13 12:52:19 -05006486
6487 /** @hide */ public static String zenModeToString(int mode) {
John Spurlockae641c92014-06-30 18:11:40 -04006488 if (mode == ZEN_MODE_IMPORTANT_INTERRUPTIONS) return "ZEN_MODE_IMPORTANT_INTERRUPTIONS";
6489 if (mode == ZEN_MODE_NO_INTERRUPTIONS) return "ZEN_MODE_NO_INTERRUPTIONS";
6490 return "ZEN_MODE_OFF";
John Spurlocke677d712014-02-13 12:52:19 -05006491 }
6492
6493 /**
John Spurlock056c5192014-04-20 21:52:01 -04006494 * Opaque value, changes when persisted zen mode configuration changes.
6495 *
6496 * @hide
6497 */
6498 public static final String ZEN_MODE_CONFIG_ETAG = "zen_mode_config_etag";
6499
6500 /**
Chris Wren7bd241232014-02-28 16:25:05 -05006501 * Defines global heads up toggle. One of HEADS_UP_OFF, HEADS_UP_ON.
6502 *
6503 * @hide
6504 */
Chris Wren10d82df2014-03-01 10:34:51 -05006505 public static final String HEADS_UP_NOTIFICATIONS_ENABLED =
6506 "heads_up_notifications_enabled";
Chris Wren7bd241232014-02-28 16:25:05 -05006507
6508 /** @hide */ public static final int HEADS_UP_OFF = 0;
6509 /** @hide */ public static final int HEADS_UP_ON = 1;
6510
6511 /**
Jerome Poichet147b4d72014-05-12 18:13:27 -07006512 * The name of the device
6513 *
6514 * @hide
6515 */
6516 public static final String DEVICE_NAME = "device_name";
6517
6518 /**
Amith Yamasani1e9c2182014-06-11 17:25:51 -07006519 * Whether it should be possible to create a guest user on the device.
6520 * <p>
6521 * Type: int (0 for disabled, 1 for enabled)
6522 * @hide
6523 */
6524 public static final String GUEST_USER_ENABLED = "guest_user_enabled";
6525
6526 /**
Jeff Davidson56f9f732014-08-14 16:47:23 -07006527 * Whether the NetworkScoringService has been first initialized.
6528 * <p>
6529 * Type: int (0 for false, 1 for true)
6530 * @hide
6531 */
6532 public static final String NETWORK_SCORING_PROVISIONED = "network_scoring_provisioned";
6533
6534 /**
Christopher Tate66488d62012-10-02 11:58:01 -07006535 * Settings to backup. This is here so that it's in the same place as the settings
6536 * keys and easy to update.
6537 *
6538 * These keys may be mentioned in the SETTINGS_TO_BACKUP arrays in System
6539 * and Secure as well. This is because those tables drive both backup and
6540 * restore, and restore needs to properly whitelist keys that used to live
6541 * in those namespaces. The keys will only actually be backed up / restored
6542 * if they are also mentioned in this table (Global.SETTINGS_TO_BACKUP).
6543 *
6544 * NOTE: Settings are backed up and restored in the order they appear
6545 * in this array. If you have one setting depending on another,
6546 * make sure that they are ordered appropriately.
6547 *
6548 * @hide
6549 */
6550 public static final String[] SETTINGS_TO_BACKUP = {
Christopher Tate58f41ec2013-01-11 15:40:36 -08006551 BUGREPORT_IN_POWER_MENU,
Christopher Tate66488d62012-10-02 11:58:01 -07006552 STAY_ON_WHILE_PLUGGED_IN,
Christopher Tate66488d62012-10-02 11:58:01 -07006553 AUTO_TIME,
6554 AUTO_TIME_ZONE,
6555 POWER_SOUNDS_ENABLED,
6556 DOCK_SOUNDS_ENABLED,
6557 USB_MASS_STORAGE_ENABLED,
6558 ENABLE_ACCESSIBILITY_GLOBAL_GESTURE_ENABLED,
6559 WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON,
6560 WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY,
Christopher Tate16eb7cd2012-10-09 15:26:30 -07006561 WIFI_WATCHDOG_POOR_NETWORK_TEST_ENABLED,
Christopher Tate66488d62012-10-02 11:58:01 -07006562 WIFI_NUM_OPEN_NETWORKS_KEPT,
6563 EMERGENCY_TONE,
6564 CALL_AUTO_RETRY,
Eric Laurent7ee1e4f2012-10-26 18:11:21 -07006565 DOCK_AUDIO_MEDIA_ENABLED
Christopher Tate66488d62012-10-02 11:58:01 -07006566 };
6567
Christopher Tate06efb532012-08-24 15:29:27 -07006568 // Populated lazily, guarded by class object:
Dianne Hackborn139748f2012-09-24 11:36:57 -07006569 private static NameValueCache sNameValueCache = new NameValueCache(
6570 SYS_PROP_SETTING_VERSION,
6571 CONTENT_URI,
6572 CALL_METHOD_GET_GLOBAL,
6573 CALL_METHOD_PUT_GLOBAL);
Christopher Tate06efb532012-08-24 15:29:27 -07006574
Christopher Tateaa036a22014-05-19 16:33:27 -07006575 // Certain settings have been moved from global to the per-user secure namespace
6576 private static final HashSet<String> MOVED_TO_SECURE;
6577 static {
6578 MOVED_TO_SECURE = new HashSet<String>(1);
6579 MOVED_TO_SECURE.add(Settings.Global.INSTALL_NON_MARKET_APPS);
6580 }
6581
Christopher Tate06efb532012-08-24 15:29:27 -07006582 /**
6583 * Look up a name in the database.
6584 * @param resolver to access the database with
6585 * @param name to look up in the table
6586 * @return the corresponding value, or null if not present
6587 */
Dianne Hackborn139748f2012-09-24 11:36:57 -07006588 public static String getString(ContentResolver resolver, String name) {
Christopher Tate06efb532012-08-24 15:29:27 -07006589 return getStringForUser(resolver, name, UserHandle.myUserId());
6590 }
6591
6592 /** @hide */
Dianne Hackborn139748f2012-09-24 11:36:57 -07006593 public static String getStringForUser(ContentResolver resolver, String name,
Christopher Tate06efb532012-08-24 15:29:27 -07006594 int userHandle) {
Christopher Tateaa036a22014-05-19 16:33:27 -07006595 if (MOVED_TO_SECURE.contains(name)) {
6596 Log.w(TAG, "Setting " + name + " has moved from android.provider.Settings.Global"
6597 + " to android.provider.Settings.Secure, returning read-only value.");
6598 return Secure.getStringForUser(resolver, name, userHandle);
6599 }
Christopher Tate06efb532012-08-24 15:29:27 -07006600 return sNameValueCache.getStringForUser(resolver, name, userHandle);
6601 }
6602
6603 /**
6604 * Store a name/value pair into the database.
6605 * @param resolver to access the database with
6606 * @param name to store
6607 * @param value to associate with the name
6608 * @return true if the value was set, false on database errors
6609 */
6610 public static boolean putString(ContentResolver resolver,
6611 String name, String value) {
6612 return putStringForUser(resolver, name, value, UserHandle.myUserId());
6613 }
6614
6615 /** @hide */
6616 public static boolean putStringForUser(ContentResolver resolver,
6617 String name, String value, int userHandle) {
Christopher Tate06efb532012-08-24 15:29:27 -07006618 if (LOCAL_LOGV) {
6619 Log.v(TAG, "Global.putString(name=" + name + ", value=" + value
6620 + " for " + userHandle);
6621 }
Christopher Tateaa036a22014-05-19 16:33:27 -07006622 // Global and Secure have the same access policy so we can forward writes
6623 if (MOVED_TO_SECURE.contains(name)) {
6624 Log.w(TAG, "Setting " + name + " has moved from android.provider.Settings.Global"
6625 + " to android.provider.Settings.Secure, value is unchanged.");
6626 return Secure.putStringForUser(resolver, name, value, userHandle);
6627 }
Christopher Tate06efb532012-08-24 15:29:27 -07006628 return sNameValueCache.putStringForUser(resolver, name, value, userHandle);
6629 }
6630
6631 /**
6632 * Construct the content URI for a particular name/value pair,
6633 * useful for monitoring changes with a ContentObserver.
6634 * @param name to look up in the table
6635 * @return the corresponding content URI, or null if not present
6636 */
6637 public static Uri getUriFor(String name) {
6638 return getUriFor(CONTENT_URI, name);
6639 }
6640
6641 /**
6642 * Convenience function for retrieving a single secure settings value
6643 * as an integer. Note that internally setting values are always
6644 * stored as strings; this function converts the string to an integer
6645 * for you. The default value will be returned if the setting is
6646 * not defined or not an integer.
6647 *
6648 * @param cr The ContentResolver to access.
6649 * @param name The name of the setting to retrieve.
6650 * @param def Value to return if the setting is not defined.
6651 *
6652 * @return The setting's current value, or 'def' if it is not defined
6653 * or not a valid integer.
6654 */
6655 public static int getInt(ContentResolver cr, String name, int def) {
6656 String v = getString(cr, name);
6657 try {
6658 return v != null ? Integer.parseInt(v) : def;
6659 } catch (NumberFormatException e) {
6660 return def;
6661 }
6662 }
6663
6664 /**
6665 * Convenience function for retrieving a single secure settings value
6666 * as an integer. Note that internally setting values are always
6667 * stored as strings; this function converts the string to an integer
6668 * for you.
6669 * <p>
6670 * This version does not take a default value. If the setting has not
6671 * been set, or the string value is not a number,
6672 * it throws {@link SettingNotFoundException}.
6673 *
6674 * @param cr The ContentResolver to access.
6675 * @param name The name of the setting to retrieve.
6676 *
6677 * @throws SettingNotFoundException Thrown if a setting by the given
6678 * name can't be found or the setting value is not an integer.
6679 *
6680 * @return The setting's current value.
6681 */
6682 public static int getInt(ContentResolver cr, String name)
6683 throws SettingNotFoundException {
6684 String v = getString(cr, name);
6685 try {
6686 return Integer.parseInt(v);
6687 } catch (NumberFormatException e) {
6688 throw new SettingNotFoundException(name);
6689 }
6690 }
6691
6692 /**
6693 * Convenience function for updating a single settings value as an
6694 * integer. This will either create a new entry in the table if the
6695 * given name does not exist, or modify the value of the existing row
6696 * with that name. Note that internally setting values are always
6697 * stored as strings, so this function converts the given value to a
6698 * string before storing it.
6699 *
6700 * @param cr The ContentResolver to access.
6701 * @param name The name of the setting to modify.
6702 * @param value The new value for the setting.
6703 * @return true if the value was set, false on database errors
6704 */
6705 public static boolean putInt(ContentResolver cr, String name, int value) {
6706 return putString(cr, name, Integer.toString(value));
6707 }
6708
6709 /**
6710 * Convenience function for retrieving a single secure settings value
6711 * as a {@code long}. Note that internally setting values are always
6712 * stored as strings; this function converts the string to a {@code long}
6713 * for you. The default value will be returned if the setting is
6714 * not defined or not a {@code long}.
6715 *
6716 * @param cr The ContentResolver to access.
6717 * @param name The name of the setting to retrieve.
6718 * @param def Value to return if the setting is not defined.
6719 *
6720 * @return The setting's current value, or 'def' if it is not defined
6721 * or not a valid {@code long}.
6722 */
6723 public static long getLong(ContentResolver cr, String name, long def) {
6724 String valString = getString(cr, name);
6725 long value;
6726 try {
6727 value = valString != null ? Long.parseLong(valString) : def;
6728 } catch (NumberFormatException e) {
6729 value = def;
6730 }
6731 return value;
6732 }
6733
6734 /**
6735 * Convenience function for retrieving a single secure settings value
6736 * as a {@code long}. Note that internally setting values are always
6737 * stored as strings; this function converts the string to a {@code long}
6738 * for you.
6739 * <p>
6740 * This version does not take a default value. If the setting has not
6741 * been set, or the string value is not a number,
6742 * it throws {@link SettingNotFoundException}.
6743 *
6744 * @param cr The ContentResolver to access.
6745 * @param name The name of the setting to retrieve.
6746 *
6747 * @return The setting's current value.
6748 * @throws SettingNotFoundException Thrown if a setting by the given
6749 * name can't be found or the setting value is not an integer.
6750 */
6751 public static long getLong(ContentResolver cr, String name)
6752 throws SettingNotFoundException {
6753 String valString = getString(cr, name);
6754 try {
6755 return Long.parseLong(valString);
6756 } catch (NumberFormatException e) {
6757 throw new SettingNotFoundException(name);
6758 }
6759 }
6760
6761 /**
6762 * Convenience function for updating a secure settings value as a long
6763 * integer. This will either create a new entry in the table if the
6764 * given name does not exist, or modify the value of the existing row
6765 * with that name. Note that internally setting values are always
6766 * stored as strings, so this function converts the given value to a
6767 * string before storing it.
6768 *
6769 * @param cr The ContentResolver to access.
6770 * @param name The name of the setting to modify.
6771 * @param value The new value for the setting.
6772 * @return true if the value was set, false on database errors
6773 */
6774 public static boolean putLong(ContentResolver cr, String name, long value) {
6775 return putString(cr, name, Long.toString(value));
6776 }
6777
6778 /**
6779 * Convenience function for retrieving a single secure settings value
6780 * as a floating point number. Note that internally setting values are
6781 * always stored as strings; this function converts the string to an
6782 * float for you. The default value will be returned if the setting
6783 * is not defined or not a valid float.
6784 *
6785 * @param cr The ContentResolver to access.
6786 * @param name The name of the setting to retrieve.
6787 * @param def Value to return if the setting is not defined.
6788 *
6789 * @return The setting's current value, or 'def' if it is not defined
6790 * or not a valid float.
6791 */
6792 public static float getFloat(ContentResolver cr, String name, float def) {
6793 String v = getString(cr, name);
6794 try {
6795 return v != null ? Float.parseFloat(v) : def;
6796 } catch (NumberFormatException e) {
6797 return def;
6798 }
6799 }
6800
6801 /**
6802 * Convenience function for retrieving a single secure settings value
6803 * as a float. Note that internally setting values are always
6804 * stored as strings; this function converts the string to a float
6805 * for you.
6806 * <p>
6807 * This version does not take a default value. If the setting has not
6808 * been set, or the string value is not a number,
6809 * it throws {@link SettingNotFoundException}.
6810 *
6811 * @param cr The ContentResolver to access.
6812 * @param name The name of the setting to retrieve.
6813 *
6814 * @throws SettingNotFoundException Thrown if a setting by the given
6815 * name can't be found or the setting value is not a float.
6816 *
6817 * @return The setting's current value.
6818 */
6819 public static float getFloat(ContentResolver cr, String name)
6820 throws SettingNotFoundException {
6821 String v = getString(cr, name);
6822 if (v == null) {
6823 throw new SettingNotFoundException(name);
6824 }
6825 try {
6826 return Float.parseFloat(v);
6827 } catch (NumberFormatException e) {
6828 throw new SettingNotFoundException(name);
6829 }
6830 }
6831
6832 /**
6833 * Convenience function for updating a single settings value as a
6834 * floating point number. This will either create a new entry in the
6835 * table if the given name does not exist, or modify the value of the
6836 * existing row with that name. Note that internally setting values
6837 * are always stored as strings, so this function converts the given
6838 * value to a string before storing it.
6839 *
6840 * @param cr The ContentResolver to access.
6841 * @param name The name of the setting to modify.
6842 * @param value The new value for the setting.
6843 * @return true if the value was set, false on database errors
6844 */
6845 public static boolean putFloat(ContentResolver cr, String name, float value) {
6846 return putString(cr, name, Float.toString(value));
6847 }
Wink Savillefb40dd42014-06-12 17:02:31 -07006848
6849
6850 /**
6851 * Subscription to be used for voice call on a multi sim device. The supported values
6852 * are 0 = SUB1, 1 = SUB2 and etc.
6853 * @hide
6854 */
6855 public static final String MULTI_SIM_VOICE_CALL_SUBSCRIPTION = "multi_sim_voice_call";
6856
6857 /**
6858 * Used to provide option to user to select subscription during dial.
6859 * The supported values are 0 = disable or 1 = enable prompt.
6860 * @hide
6861 */
6862 public static final String MULTI_SIM_VOICE_PROMPT = "multi_sim_voice_prompt";
6863
6864 /**
6865 * Subscription to be used for data call on a multi sim device. The supported values
6866 * are 0 = SUB1, 1 = SUB2 and etc.
6867 * @hide
6868 */
6869 public static final String MULTI_SIM_DATA_CALL_SUBSCRIPTION = "multi_sim_data_call";
6870
6871 /**
6872 * Subscription to be used for SMS on a multi sim device. The supported values
6873 * are 0 = SUB1, 1 = SUB2 and etc.
6874 * @hide
6875 */
6876 public static final String MULTI_SIM_SMS_SUBSCRIPTION = "multi_sim_sms";
6877
6878 /**
6879 * Used to provide option to user to select subscription during send SMS.
6880 * The value 1 - enable, 0 - disable
6881 * @hide
6882 */
6883 public static final String MULTI_SIM_SMS_PROMPT = "multi_sim_sms_prompt";
6884
6885
6886
6887 /** User preferred subscriptions setting.
6888 * This holds the details of the user selected subscription from the card and
6889 * the activation status. Each settings string have the coma separated values
6890 * iccId,appType,appId,activationStatus,3gppIndex,3gpp2Index
6891 * @hide
6892 */
6893 public static final String[] MULTI_SIM_USER_PREFERRED_SUBS = {"user_preferred_sub1",
6894 "user_preferred_sub2","user_preferred_sub3"};
Christopher Tate06efb532012-08-24 15:29:27 -07006895 }
6896
6897 /**
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08006898 * User-defined bookmarks and shortcuts. The target of each bookmark is an
6899 * Intent URL, allowing it to be either a web page or a particular
6900 * application activity.
6901 *
6902 * @hide
6903 */
6904 public static final class Bookmarks implements BaseColumns
6905 {
6906 private static final String TAG = "Bookmarks";
6907
6908 /**
6909 * The content:// style URL for this table
6910 */
6911 public static final Uri CONTENT_URI =
6912 Uri.parse("content://" + AUTHORITY + "/bookmarks");
6913
6914 /**
6915 * The row ID.
6916 * <p>Type: INTEGER</p>
6917 */
6918 public static final String ID = "_id";
6919
6920 /**
6921 * Descriptive name of the bookmark that can be displayed to the user.
6922 * If this is empty, the title should be resolved at display time (use
6923 * {@link #getTitle(Context, Cursor)} any time you want to display the
6924 * title of a bookmark.)
6925 * <P>
6926 * Type: TEXT
6927 * </P>
6928 */
6929 public static final String TITLE = "title";
6930
6931 /**
6932 * Arbitrary string (displayed to the user) that allows bookmarks to be
6933 * organized into categories. There are some special names for
6934 * standard folders, which all start with '@'. The label displayed for
6935 * the folder changes with the locale (via {@link #getLabelForFolder}) but
6936 * the folder name does not change so you can consistently query for
6937 * the folder regardless of the current locale.
6938 *
6939 * <P>Type: TEXT</P>
6940 *
6941 */
6942 public static final String FOLDER = "folder";
6943
6944 /**
6945 * The Intent URL of the bookmark, describing what it points to. This
6946 * value is given to {@link android.content.Intent#getIntent} to create
6947 * an Intent that can be launched.
6948 * <P>Type: TEXT</P>
6949 */
6950 public static final String INTENT = "intent";
6951
6952 /**
6953 * Optional shortcut character associated with this bookmark.
6954 * <P>Type: INTEGER</P>
6955 */
6956 public static final String SHORTCUT = "shortcut";
6957
6958 /**
6959 * The order in which the bookmark should be displayed
6960 * <P>Type: INTEGER</P>
6961 */
6962 public static final String ORDERING = "ordering";
6963
6964 private static final String[] sIntentProjection = { INTENT };
6965 private static final String[] sShortcutProjection = { ID, SHORTCUT };
6966 private static final String sShortcutSelection = SHORTCUT + "=?";
6967
6968 /**
6969 * Convenience function to retrieve the bookmarked Intent for a
6970 * particular shortcut key.
6971 *
6972 * @param cr The ContentResolver to query.
6973 * @param shortcut The shortcut key.
6974 *
6975 * @return Intent The bookmarked URL, or null if there is no bookmark
6976 * matching the given shortcut.
6977 */
6978 public static Intent getIntentForShortcut(ContentResolver cr, char shortcut)
6979 {
6980 Intent intent = null;
6981
6982 Cursor c = cr.query(CONTENT_URI,
6983 sIntentProjection, sShortcutSelection,
6984 new String[] { String.valueOf((int) shortcut) }, ORDERING);
6985 // Keep trying until we find a valid shortcut
6986 try {
6987 while (intent == null && c.moveToNext()) {
6988 try {
6989 String intentURI = c.getString(c.getColumnIndexOrThrow(INTENT));
Christian Mehlmauera34d2c92010-05-25 19:04:20 +02006990 intent = Intent.parseUri(intentURI, 0);
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08006991 } catch (java.net.URISyntaxException e) {
6992 // The stored URL is bad... ignore it.
6993 } catch (IllegalArgumentException e) {
6994 // Column not found
Dianne Hackborna33e3f72009-09-29 17:28:24 -07006995 Log.w(TAG, "Intent column not found", e);
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08006996 }
6997 }
6998 } finally {
6999 if (c != null) c.close();
7000 }
7001
7002 return intent;
7003 }
7004
7005 /**
7006 * Add a new bookmark to the system.
Jaikumar Ganesh9bfbfbd2009-05-15 12:05:56 -07007007 *
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08007008 * @param cr The ContentResolver to query.
7009 * @param intent The desired target of the bookmark.
7010 * @param title Bookmark title that is shown to the user; null if none
7011 * or it should be resolved to the intent's title.
7012 * @param folder Folder in which to place the bookmark; null if none.
7013 * @param shortcut Shortcut that will invoke the bookmark; 0 if none. If
7014 * this is non-zero and there is an existing bookmark entry
7015 * with this same shortcut, then that existing shortcut is
7016 * cleared (the bookmark is not removed).
7017 * @return The unique content URL for the new bookmark entry.
7018 */
7019 public static Uri add(ContentResolver cr,
7020 Intent intent,
7021 String title,
7022 String folder,
7023 char shortcut,
7024 int ordering)
7025 {
7026 // If a shortcut is supplied, and it is already defined for
7027 // another bookmark, then remove the old definition.
7028 if (shortcut != 0) {
Jeff Hamilton7cd51ef2010-05-12 17:30:27 -05007029 cr.delete(CONTENT_URI, sShortcutSelection,
7030 new String[] { String.valueOf((int) shortcut) });
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08007031 }
7032
7033 ContentValues values = new ContentValues();
7034 if (title != null) values.put(TITLE, title);
7035 if (folder != null) values.put(FOLDER, folder);
Jean-Baptiste Queru3b9f0a32010-06-21 13:46:59 -07007036 values.put(INTENT, intent.toUri(0));
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08007037 if (shortcut != 0) values.put(SHORTCUT, (int) shortcut);
7038 values.put(ORDERING, ordering);
7039 return cr.insert(CONTENT_URI, values);
7040 }
7041
7042 /**
7043 * Return the folder name as it should be displayed to the user. This
7044 * takes care of localizing special folders.
7045 *
7046 * @param r Resources object for current locale; only need access to
7047 * system resources.
7048 * @param folder The value found in the {@link #FOLDER} column.
7049 *
7050 * @return CharSequence The label for this folder that should be shown
7051 * to the user.
7052 */
7053 public static CharSequence getLabelForFolder(Resources r, String folder) {
7054 return folder;
7055 }
7056
7057 /**
7058 * Return the title as it should be displayed to the user. This takes
7059 * care of localizing bookmarks that point to activities.
Jaikumar Ganesh9bfbfbd2009-05-15 12:05:56 -07007060 *
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08007061 * @param context A context.
7062 * @param cursor A cursor pointing to the row whose title should be
7063 * returned. The cursor must contain at least the {@link #TITLE}
7064 * and {@link #INTENT} columns.
7065 * @return A title that is localized and can be displayed to the user,
7066 * or the empty string if one could not be found.
7067 */
7068 public static CharSequence getTitle(Context context, Cursor cursor) {
7069 int titleColumn = cursor.getColumnIndex(TITLE);
7070 int intentColumn = cursor.getColumnIndex(INTENT);
7071 if (titleColumn == -1 || intentColumn == -1) {
7072 throw new IllegalArgumentException(
7073 "The cursor must contain the TITLE and INTENT columns.");
7074 }
Jaikumar Ganesh9bfbfbd2009-05-15 12:05:56 -07007075
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08007076 String title = cursor.getString(titleColumn);
7077 if (!TextUtils.isEmpty(title)) {
7078 return title;
7079 }
Jaikumar Ganesh9bfbfbd2009-05-15 12:05:56 -07007080
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08007081 String intentUri = cursor.getString(intentColumn);
7082 if (TextUtils.isEmpty(intentUri)) {
7083 return "";
7084 }
Jaikumar Ganesh9bfbfbd2009-05-15 12:05:56 -07007085
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08007086 Intent intent;
7087 try {
Christian Mehlmauera34d2c92010-05-25 19:04:20 +02007088 intent = Intent.parseUri(intentUri, 0);
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08007089 } catch (URISyntaxException e) {
7090 return "";
7091 }
Jaikumar Ganesh9bfbfbd2009-05-15 12:05:56 -07007092
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08007093 PackageManager packageManager = context.getPackageManager();
7094 ResolveInfo info = packageManager.resolveActivity(intent, 0);
7095 return info != null ? info.loadLabel(packageManager) : "";
7096 }
7097 }
7098
7099 /**
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08007100 * Returns the device ID that we should use when connecting to the mobile gtalk server.
7101 * This is a string like "android-0x1242", where the hex string is the Android ID obtained
7102 * from the GoogleLoginService.
7103 *
7104 * @param androidId The Android ID for this device.
7105 * @return The device ID that should be used when connecting to the mobile gtalk server.
7106 * @hide
7107 */
7108 public static String getGTalkDeviceId(long androidId) {
7109 return "android-" + Long.toHexString(androidId);
7110 }
7111}