查询/设置Settings的值

     按计划每周更新一篇技术博文,第四篇:《查询/设置Settings的值

    通常很多定制系统或者与系统相关的应用都需要查询/设置 Settings(设置)里边的值,比如系统亮度,休眠时间,锁屏之类的系统设置等,主要通过 SettingsProvider来查询/设置,前提是要知道所要修改的值的数据类型与字符串代表的name。
    对应的name值与数据类型在./ics/frameworks/base/core/java/android/provider/Settings.java文件中,例举两个例子如下:

1.查询休眠时间:
/**
* 获取系统休眠时间
* @return 秒数(从不待机 返回0)
*/
public static String getTimeOut(ContentResolver resolver){
int timeOut = 0;
try {
timeOut = android.provider.Settings.System.getInt(resolver, Settings.System.SCREEN_BRIGHTNESS);
timeOut /= 1000;
} catch (SettingNotFoundException e) {
e.printStackTrace();
}
String timeOutStr = timeOut + "";
return timeOutStr;
}

2.更改系统亮度:
/**
* 保存亮度设置状态
* 改变setting值
* @param resolver
* @param brightness : 0~1
*/
public static void saveBrightness(ContentResolver resolver, float brightness) {
Uri uri = android.provider.Settings.System
.getUriFor(Settings.System.SCREEN_BRIGHTNESS);
android.provider.Settings.System.putInt(resolver, Settings.System.SCREEN_BRIGHTNESS,
(int)(brightness*255));
resolver.notifyChange(uri, null);
}

需要权限:



PS:

a.查询Settings中各个属性所对应的值(Android APIs):http://developer.android.com/reference/android/provider/Settings.System.html

b.ContentResolver Context提供getContentResolver()方法可以获取ContentResolver对象,便可以操作文中前边所提的 SettingsProvider所暴露的数据。
c.Android系统提供大量的SettingsProvider,Settings除外,常用的还有管理联系人(ContactsContract)、短信(Telephony)、多媒体数据(MediaStore)等,对应的URI可到这里查看:http://developer.android.com/reference/android/provider/package-summary.html,源码路径:./ics/frameworks/base/core/java/android/provider/
d.Settings默认初始值的位置(修改之前最好弄明白先,修改后再测试一下): frameworks/base/packages/SettingsProvider/res/values/defaults.xml


=========================================================================
Android中的android.provider.Settings.System系统属性设定

Content Provider中的Setting.System表格内存储了很多系统属性的值,以键值对的形式存在!

可以对如下的变量进行设置

Constants
String ACCELEROMETER_ROTATION Control whether the accelerometer will be used to change screen orientation.
String ADB_ENABLED This constant is deprecated. Use ADB_ENABLED instead
String AIRPLANE_MODE_ON Whether Airplane Mode is on.
String AIRPLANE_MODE_RADIOS A comma separated list of radios that need to be disabled when airplane mode is on.
String ALARM_ALERT Persistent store for the system-wide default alarm alert.
String ALWAYS_FINISH_ACTIVITIES If 1, the activity manager will aggressively finish activities and processes as soon as they are no longer needed.
String ANDROID_ID This constant is deprecated. Use ANDROID_ID instead
String APPEND_FOR_LAST_AUDIBLE Appended to various volume related settings to record the previous values before they the settings were affected by a silent/vibrate ringer mode change.
String AUTO_TIME Value to specify if the user prefers the date, time and time zone to be automatically fetched from the network (NITZ).
String AUTO_TIME_ZONE Value to specify if the user prefers the time zone to be automatically fetched from the network (NITZ).
String BLUETOOTH_DISCOVERABILITY Determines whether remote devices may discover and/or connect to this device.
String BLUETOOTH_DISCOVERABILITY_TIMEOUT Bluetooth discoverability timeout.
String BLUETOOTH_ON This constant is deprecated. Use BLUETOOTH_ON instead
String DATA_ROAMING This constant is deprecated. Use DATA_ROAMING instead
String DATE_FORMAT Date format string mm/dd/yyyy dd/mm/yyyy yyyy/mm/dd
String DEBUG_APP Name of an application package to be debugged.
String DEVICE_PROVISIONED This constant is deprecated. Use DEVICE_PROVISIONEDinstead
String DIM_SCREEN Whether or not to dim the screen.
String DTMF_TONE_WHEN_DIALING Whether the audible DTMF tones are played by the dialer when dialing.
String END_BUTTON_BEHAVIOR What happens when the user presses the end call button if they're not on a call.
String FONT_SCALE Scaling factor for fonts, float.
String HAPTIC_FEEDBACK_ENABLED Whether the haptic feedback (long presses, ...) are enabled.
String HTTP_PROXY This constant is deprecated. Use HTTP_PROXY instead
String INSTALL_NON_MARKET_APPS This constant is deprecated. UseINSTALL_NON_MARKET_APPS instead
String LOCATION_PROVIDERS_ALLOWED This constant is deprecated. UseLOCATION_PROVIDERS_ALLOWED instead
String LOCK_PATTERN_ENABLED This constant is deprecated. Use LOCK_PATTERN_ENABLEDinstead
String LOCK_PATTERN_TACTILE_FEEDBACK_ENABLED This constant is deprecated. UseLOCK_PATTERN_TACTILE_FEEDBACK_ENABLED instead
String LOCK_PATTERN_VISIBLE This constant is deprecated. Use LOCK_PATTERN_VISIBLEinstead
String LOGGING_ID This constant is deprecated. Use LOGGING_ID instead
String MODE_RINGER Ringer mode.
String MODE_RINGER_STREAMS_AFFECTED Determines which streams are affected by ringer mode changes.
String MUTE_STREAMS_AFFECTED Determines which streams are affected by mute.
String NETWORK_PREFERENCE This constant is deprecated. Use NETWORK_PREFERENCEinstead
String NEXT_ALARM_FORMATTED A formatted string of the next alarm that is set, or the empty string if there is no alarm set.
String NOTIFICATION_SOUND Persistent store for the system-wide default notification sound.
String PARENTAL_CONTROL_ENABLED This constant is deprecated. UsePARENTAL_CONTROL_ENABLED instead
String PARENTAL_CONTROL_LAST_UPDATE This constant is deprecated. UsePARENTAL_CONTROL_LAST_UPDATE instead
String PARENTAL_CONTROL_REDIRECT_URL This constant is deprecated. UsePARENTAL_CONTROL_REDIRECT_URL instead
String RADIO_BLUETOOTH Constant for use in AIRPLANE_MODE_RADIOS to specify Bluetooth radio.
String RADIO_CELL Constant for use in AIRPLANE_MODE_RADIOS to specify Cellular radio.
String RADIO_NFC Constant for use in AIRPLANE_MODE_RADIOS to specify NFC radio.
String RADIO_WIFI Constant for use in AIRPLANE_MODE_RADIOS to specify Wi-Fi radio.
String RINGTONE Persistent store for the system-wide default ringtone URI.
String SCREEN_BRIGHTNESS The screen backlight brightness between 0 and 255.
String SCREEN_BRIGHTNESS_MODE Control whether to enable automatic brightness mode.
int SCREEN_BRIGHTNESS_MODE_AUTOMATIC SCREEN_BRIGHTNESS_MODE value for automatic mode.
int SCREEN_BRIGHTNESS_MODE_MANUAL SCREEN_BRIGHTNESS_MODE value for manual mode.
String SCREEN_OFF_TIMEOUT The timeout before the screen turns off.
String SETTINGS_CLASSNAME This constant is deprecated. Use SETTINGS_CLASSNAMEinstead
String SETUP_WIZARD_HAS_RUN Whether the setup wizard has been run before (on first boot), or if it still needs to be run.
String SHOW_GTALK_SERVICE_STATUS  
String SHOW_PROCESSES Control whether the process CPU usage meter should be shown.
String SHOW_WEB_SUGGESTIONS This constant is deprecated. Each application that shows web suggestions should have its own setting for this.
String SOUND_EFFECTS_ENABLED Whether the sounds effects (key clicks, lid open ...) are enabled.
String STAY_ON_WHILE_PLUGGED_IN Whether we keep the device on while the device is plugged in.
String SYS_PROP_SETTING_VERSION  
String TEXT_AUTO_CAPS Setting to enable Auto Caps in text editors.
String TEXT_AUTO_PUNCTUATE Setting to enable Auto Punctuate in text editors.
String TEXT_AUTO_REPLACE Setting to enable Auto Replace (AutoText) in text editors.
String TEXT_SHOW_PASSWORD Setting to showing password characters in text editors.
String TIME_12_24 Display times as 12 or 24 hours 12 24
String TRANSITION_ANIMATION_SCALE Scaling factor for activity transition animations.
String USB_MASS_STORAGE_ENABLED This constant is deprecated. UseUSB_MASS_STORAGE_ENABLED instead
String USER_ROTATION Default screen rotation when no other policy applies.
String USE_GOOGLE_MAIL This constant is deprecated. Use USE_GOOGLE_MAILinstead
String VIBRATE_ON Whether vibrate is on for different events.
String VOLUME_ALARM Alarm volume.
String VOLUME_BLUETOOTH_SCO Bluetooth Headset volume.
String VOLUME_MUSIC Music/media/gaming volume.
String VOLUME_NOTIFICATION Notification volume.
String VOLUME_RING Ringer volume.
String VOLUME_SYSTEM System/notifications volume.
String VOLUME_VOICE Voice call volume.
String WAIT_FOR_DEBUGGER If 1, when launching DEBUG_APP it will wait for the debugger before starting user code.
String WALLPAPER_ACTIVITY Name of activity to use for wallpaper on the home screen.
String WIFI_MAX_DHCP_RETRY_COUNT This constant is deprecated. UseWIFI_MAX_DHCP_RETRY_COUNT instead
String WIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MS This constant is deprecated. UseWIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MSinstead
String WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON This constant is deprecated. UseWIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON instead
String WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY This constant is deprecated. UseWIFI_NETWORKS_AVAILABLE_REPEAT_DELAY instead
String WIFI_NUM_OPEN_NETWORKS_KEPT This constant is deprecated. UseWIFI_NUM_OPEN_NETWORKS_KEPT instead
String WIFI_ON This constant is deprecated. Use WIFI_ON instead
String WIFI_SLEEP_POLICY The policy for deciding when Wi-Fi should go to sleep (which will in turn switch to using the mobile data as an Internet connection).
int WIFI_SLEEP_POLICY_DEFAULT Value for WIFI_SLEEP_POLICY to use the default Wi-Fi sleep policy, which is to sleep shortly after the turning off according to the STAY_ON_WHILE_PLUGGED_IN setting.
int WIFI_SLEEP_POLICY_NEVER Value for WIFI_SLEEP_POLICY to never go to sleep.
int WIFI_SLEEP_POLICY_NEVER_WHILE_PLUGGED Value for WIFI_SLEEP_POLICY to use the default policy when the device is on battery, and never go to sleep when the device is plugged in.
String WIFI_STATIC_DNS1 If using static IP, the primary DNS's IP address.
String WIFI_STATIC_DNS2 If using static IP, the secondary DNS's IP address.
String WIFI_STATIC_GATEWAY If using static IP, the gateway's IP address.
String WIFI_STATIC_IP The static IP address.
String WIFI_STATIC_NETMASK If using static IP, the net mask.
String WIFI_USE_STATIC_IP Whether to use static IP and other static network attributes.
String WIFI_WATCHDOG_ACCEPTABLE_PACKET_LOSS_PERCENTAGE This constant is deprecated. UseWIFI_WATCHDOG_ACCEPTABLE_PACKET_LOSS_PERCENTAGEinstead
String WIFI_WATCHDOG_AP_COUNT This constant is deprecated. UseWIFI_WATCHDOG_AP_COUNT instead
String WIFI_WATCHDOG_BACKGROUND_CHECK_DELAY_MS This constant is deprecated. UseWIFI_WATCHDOG_BACKGROUND_CHECK_DELAY_MS instead
String WIFI_WATCHDOG_BACKGROUND_CHECK_ENABLED This constant is deprecated. UseWIFI_WATCHDOG_BACKGROUND_CHECK_ENABLED instead
String WIFI_WATCHDOG_BACKGROUND_CHECK_TIMEOUT_MS This constant is deprecated. UseWIFI_WATCHDOG_BACKGROUND_CHECK_TIMEOUT_MSinstead
String WIFI_WATCHDOG_INITIAL_IGNORED_PING_COUNT This constant is deprecated. UseWIFI_WATCHDOG_INITIAL_IGNORED_PING_COUNT instead
String WIFI_WATCHDOG_MAX_AP_CHECKS This constant is deprecated. UseWIFI_WATCHDOG_MAX_AP_CHECKS instead
String WIFI_WATCHDOG_ON This constant is deprecated. Use WIFI_WATCHDOG_ONinstead
String WIFI_WATCHDOG_PING_COUNT This constant is deprecated. UseWIFI_WATCHDOG_PING_COUNT instead
String WIFI_WATCHDOG_PING_DELAY_MS This constant is deprecated. UseWIFI_WATCHDOG_PING_DELAY_MS instead
String WIFI_WATCHDOG_PING_TIMEOUT_MS This constant is deprecated. UseWIFI_WATCHDOG_PING_TIMEOUT_MS instead
String WINDOW_ANIMATION_SCALE Scaling factor for normal window animations.

通过如下的函数可以对其进行读写:

static void getConfiguration(ContentResolver cr, Configuration outConfig)
Convenience function to read all of the current configuration-related settings into a Configuration object.
static float getFloat(ContentResolver cr, String name, float def)
Convenience function for retrieving a single system settings value as a floating point number.
static float getFloat(ContentResolver cr, String name)
Convenience function for retrieving a single system settings value as a float.
static int getInt(ContentResolver cr, String name)
Convenience function for retrieving a single system settings value as an integer.
static int getInt(ContentResolver cr, String name, int def)
Convenience function for retrieving a single system settings value as an integer.
static long getLong(ContentResolver cr, String name, long def)
Convenience function for retrieving a single system settings value as a  long.
static long getLong(ContentResolver cr, String name)
Convenience function for retrieving a single system settings value as a  long.
static boolean getShowGTalkServiceStatus(ContentResolver cr)
synchronized static String getString(ContentResolver resolver, String name)
Look up a name in the database.
static Uri getUriFor(String name)
Construct the content URI for a particular name/value pair, useful for monitoring changes with a ContentObserver.
static boolean putConfiguration(ContentResolver cr, Configuration config)
Convenience function to write a batch of configuration-related settings from a Configuration object.
static boolean putFloat(ContentResolver cr, String name, float value)
Convenience function for updating a single settings value as a floating point number.
static boolean putInt(ContentResolver cr, String name, int value)
Convenience function for updating a single settings value as an integer.
static boolean putLong(ContentResolver cr, String name, long value)
Convenience function for updating a single settings value as a long integer.
static boolean putString(ContentResolver resolver, String name, String value)
Store a name/value pair into the database.
static void setShowGTalkServiceStatus(ContentResolver cr, boolean flag)


注意,应用程序中应加入: 


你可能感兴趣的:(原创博文,学习笔记)