查询/设置Settings的值

来源:互联网 发布:c语言求整数位数 编辑:程序博客网 时间:2024/04/29 13:20
    按计划每周更新一篇技术博文,第四篇:《查询/设置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);}

需要权限:

<uses-permission android:name="android.permission.WRITE_SETTINGS" />



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表格内存储了很多系统属性的值,以键值对的形式存在!

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

ConstantsStringACCELEROMETER_ROTATIONControl whether the accelerometer will be used to change screen orientation.StringADB_ENABLEDThis constant is deprecated. Use ADB_ENABLED insteadStringAIRPLANE_MODE_ONWhether Airplane Mode is on.StringAIRPLANE_MODE_RADIOSA comma separated list of radios that need to be disabled when airplane mode is on.StringALARM_ALERTPersistent store for the system-wide default alarm alert.StringALWAYS_FINISH_ACTIVITIESIf 1, the activity manager will aggressively finish activities and processes as soon as they are no longer needed.StringANDROID_IDThis constant is deprecated. Use ANDROID_ID insteadStringAPPEND_FOR_LAST_AUDIBLEAppended to various volume related settings to record the previous values before they the settings were affected by a silent/vibrate ringer mode change.StringAUTO_TIMEValue to specify if the user prefers the date, time and time zone to be automatically fetched from the network (NITZ).StringAUTO_TIME_ZONEValue to specify if the user prefers the time zone to be automatically fetched from the network (NITZ).StringBLUETOOTH_DISCOVERABILITYDetermines whether remote devices may discover and/or connect to this device.StringBLUETOOTH_DISCOVERABILITY_TIMEOUTBluetooth discoverability timeout.StringBLUETOOTH_ONThis constant is deprecated. Use BLUETOOTH_ON insteadStringDATA_ROAMINGThis constant is deprecated. Use DATA_ROAMING insteadStringDATE_FORMATDate format string mm/dd/yyyy dd/mm/yyyy yyyy/mm/ddStringDEBUG_APPName of an application package to be debugged.StringDEVICE_PROVISIONEDThis constant is deprecated. Use DEVICE_PROVISIONEDinsteadStringDIM_SCREENWhether or not to dim the screen.StringDTMF_TONE_WHEN_DIALINGWhether the audible DTMF tones are played by the dialer when dialing.StringEND_BUTTON_BEHAVIORWhat happens when the user presses the end call button if they're not on a call.StringFONT_SCALEScaling factor for fonts, float.StringHAPTIC_FEEDBACK_ENABLEDWhether the haptic feedback (long presses, ...) are enabled.StringHTTP_PROXYThis constant is deprecated. Use HTTP_PROXY insteadStringINSTALL_NON_MARKET_APPSThis constant is deprecated. UseINSTALL_NON_MARKET_APPS insteadStringLOCATION_PROVIDERS_ALLOWEDThis constant is deprecated. UseLOCATION_PROVIDERS_ALLOWED insteadStringLOCK_PATTERN_ENABLEDThis constant is deprecated. Use LOCK_PATTERN_ENABLEDinsteadStringLOCK_PATTERN_TACTILE_FEEDBACK_ENABLEDThis constant is deprecated. UseLOCK_PATTERN_TACTILE_FEEDBACK_ENABLED insteadStringLOCK_PATTERN_VISIBLEThis constant is deprecated. Use LOCK_PATTERN_VISIBLEinsteadStringLOGGING_IDThis constant is deprecated. Use LOGGING_ID insteadStringMODE_RINGERRinger mode.StringMODE_RINGER_STREAMS_AFFECTEDDetermines which streams are affected by ringer mode changes.StringMUTE_STREAMS_AFFECTEDDetermines which streams are affected by mute.StringNETWORK_PREFERENCEThis constant is deprecated. Use NETWORK_PREFERENCEinsteadStringNEXT_ALARM_FORMATTEDA formatted string of the next alarm that is set, or the empty string if there is no alarm set.StringNOTIFICATION_SOUNDPersistent store for the system-wide default notification sound.StringPARENTAL_CONTROL_ENABLEDThis constant is deprecated. UsePARENTAL_CONTROL_ENABLED insteadStringPARENTAL_CONTROL_LAST_UPDATEThis constant is deprecated. UsePARENTAL_CONTROL_LAST_UPDATE insteadStringPARENTAL_CONTROL_REDIRECT_URLThis constant is deprecated. UsePARENTAL_CONTROL_REDIRECT_URL insteadStringRADIO_BLUETOOTHConstant for use in AIRPLANE_MODE_RADIOS to specify Bluetooth radio.StringRADIO_CELLConstant for use in AIRPLANE_MODE_RADIOS to specify Cellular radio.StringRADIO_NFCConstant for use in AIRPLANE_MODE_RADIOS to specify NFC radio.StringRADIO_WIFIConstant for use in AIRPLANE_MODE_RADIOS to specify Wi-Fi radio.StringRINGTONEPersistent store for the system-wide default ringtone URI.StringSCREEN_BRIGHTNESSThe screen backlight brightness between 0 and 255.StringSCREEN_BRIGHTNESS_MODEControl whether to enable automatic brightness mode.intSCREEN_BRIGHTNESS_MODE_AUTOMATICSCREEN_BRIGHTNESS_MODE value for automatic mode.intSCREEN_BRIGHTNESS_MODE_MANUALSCREEN_BRIGHTNESS_MODE value for manual mode.StringSCREEN_OFF_TIMEOUTThe timeout before the screen turns off.StringSETTINGS_CLASSNAMEThis constant is deprecated. Use SETTINGS_CLASSNAMEinsteadStringSETUP_WIZARD_HAS_RUNWhether the setup wizard has been run before (on first boot), or if it still needs to be run.StringSHOW_GTALK_SERVICE_STATUS StringSHOW_PROCESSESControl whether the process CPU usage meter should be shown.StringSHOW_WEB_SUGGESTIONSThis constant is deprecated. Each application that shows web suggestions should have its own setting for this.StringSOUND_EFFECTS_ENABLEDWhether the sounds effects (key clicks, lid open ...) are enabled.StringSTAY_ON_WHILE_PLUGGED_INWhether we keep the device on while the device is plugged in.StringSYS_PROP_SETTING_VERSION StringTEXT_AUTO_CAPSSetting to enable Auto Caps in text editors.StringTEXT_AUTO_PUNCTUATESetting to enable Auto Punctuate in text editors.StringTEXT_AUTO_REPLACESetting to enable Auto Replace (AutoText) in text editors.StringTEXT_SHOW_PASSWORDSetting to showing password characters in text editors.StringTIME_12_24Display times as 12 or 24 hours 12 24StringTRANSITION_ANIMATION_SCALEScaling factor for activity transition animations.StringUSB_MASS_STORAGE_ENABLEDThis constant is deprecated. UseUSB_MASS_STORAGE_ENABLED insteadStringUSER_ROTATIONDefault screen rotation when no other policy applies.StringUSE_GOOGLE_MAILThis constant is deprecated. Use USE_GOOGLE_MAILinsteadStringVIBRATE_ONWhether vibrate is on for different events.StringVOLUME_ALARMAlarm volume.StringVOLUME_BLUETOOTH_SCOBluetooth Headset volume.StringVOLUME_MUSICMusic/media/gaming volume.StringVOLUME_NOTIFICATIONNotification volume.StringVOLUME_RINGRinger volume.StringVOLUME_SYSTEMSystem/notifications volume.StringVOLUME_VOICEVoice call volume.StringWAIT_FOR_DEBUGGERIf 1, when launching DEBUG_APP it will wait for the debugger before starting user code.StringWALLPAPER_ACTIVITYName of activity to use for wallpaper on the home screen.StringWIFI_MAX_DHCP_RETRY_COUNTThis constant is deprecated. UseWIFI_MAX_DHCP_RETRY_COUNT insteadStringWIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MSThis constant is deprecated. UseWIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MSinsteadStringWIFI_NETWORKS_AVAILABLE_NOTIFICATION_ONThis constant is deprecated. UseWIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON insteadStringWIFI_NETWORKS_AVAILABLE_REPEAT_DELAYThis constant is deprecated. UseWIFI_NETWORKS_AVAILABLE_REPEAT_DELAY insteadStringWIFI_NUM_OPEN_NETWORKS_KEPTThis constant is deprecated. UseWIFI_NUM_OPEN_NETWORKS_KEPT insteadStringWIFI_ONThis constant is deprecated. Use WIFI_ON insteadStringWIFI_SLEEP_POLICYThe policy for deciding when Wi-Fi should go to sleep (which will in turn switch to using the mobile data as an Internet connection).intWIFI_SLEEP_POLICY_DEFAULTValue 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.intWIFI_SLEEP_POLICY_NEVERValue for WIFI_SLEEP_POLICY to never go to sleep.intWIFI_SLEEP_POLICY_NEVER_WHILE_PLUGGEDValue 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.StringWIFI_STATIC_DNS1If using static IP, the primary DNS's IP address.StringWIFI_STATIC_DNS2If using static IP, the secondary DNS's IP address.StringWIFI_STATIC_GATEWAYIf using static IP, the gateway's IP address.StringWIFI_STATIC_IPThe static IP address.StringWIFI_STATIC_NETMASKIf using static IP, the net mask.StringWIFI_USE_STATIC_IPWhether to use static IP and other static network attributes.StringWIFI_WATCHDOG_ACCEPTABLE_PACKET_LOSS_PERCENTAGEThis constant is deprecated. UseWIFI_WATCHDOG_ACCEPTABLE_PACKET_LOSS_PERCENTAGEinsteadStringWIFI_WATCHDOG_AP_COUNTThis constant is deprecated. UseWIFI_WATCHDOG_AP_COUNT insteadStringWIFI_WATCHDOG_BACKGROUND_CHECK_DELAY_MSThis constant is deprecated. UseWIFI_WATCHDOG_BACKGROUND_CHECK_DELAY_MS insteadStringWIFI_WATCHDOG_BACKGROUND_CHECK_ENABLEDThis constant is deprecated. UseWIFI_WATCHDOG_BACKGROUND_CHECK_ENABLED insteadStringWIFI_WATCHDOG_BACKGROUND_CHECK_TIMEOUT_MSThis constant is deprecated. UseWIFI_WATCHDOG_BACKGROUND_CHECK_TIMEOUT_MSinsteadStringWIFI_WATCHDOG_INITIAL_IGNORED_PING_COUNTThis constant is deprecated. UseWIFI_WATCHDOG_INITIAL_IGNORED_PING_COUNT insteadStringWIFI_WATCHDOG_MAX_AP_CHECKSThis constant is deprecated. UseWIFI_WATCHDOG_MAX_AP_CHECKS insteadStringWIFI_WATCHDOG_ONThis constant is deprecated. Use WIFI_WATCHDOG_ONinsteadStringWIFI_WATCHDOG_PING_COUNTThis constant is deprecated. UseWIFI_WATCHDOG_PING_COUNT insteadStringWIFI_WATCHDOG_PING_DELAY_MSThis constant is deprecated. UseWIFI_WATCHDOG_PING_DELAY_MS insteadStringWIFI_WATCHDOG_PING_TIMEOUT_MSThis constant is deprecated. UseWIFI_WATCHDOG_PING_TIMEOUT_MS insteadStringWINDOW_ANIMATION_SCALEScaling factor for normal window animations.

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

static voidgetConfiguration(ContentResolver cr, Configuration outConfig)
Convenience function to read all of the current configuration-related settings into aConfiguration object.
static floatgetFloat(ContentResolver cr, String name, float def)
Convenience function for retrieving a single system settings value as a floating point number.
static floatgetFloat(ContentResolver cr, String name)
Convenience function for retrieving a single system settings value as a float.
static intgetInt(ContentResolver cr, String name)
Convenience function for retrieving a single system settings value as an integer.
static intgetInt(ContentResolver cr, String name, int def)
Convenience function for retrieving a single system settings value as an integer.
static longgetLong(ContentResolver cr, String name, long def)
Convenience function for retrieving a single system settings value as a long.
static longgetLong(ContentResolver cr, String name)
Convenience function for retrieving a single system settings value as a long.
static booleangetShowGTalkServiceStatus(ContentResolver cr)synchronized static StringgetString(ContentResolver resolver, String name)
Look up a name in the database.
static UrigetUriFor(String name)
Construct the content URI for a particular name/value pair, useful for monitoring changes with a ContentObserver.
static booleanputConfiguration(ContentResolver cr, Configuration config)
Convenience function to write a batch of configuration-related settings from aConfiguration object.
static booleanputFloat(ContentResolver cr, String name, float value)
Convenience function for updating a single settings value as a floating point number.
static booleanputInt(ContentResolver cr, String name, int value)
Convenience function for updating a single settings value as an integer.
static booleanputLong(ContentResolver cr, String name, long value)
Convenience function for updating a single settings value as a long integer.
static booleanputString(ContentResolver resolver, String name, String value)
Store a name/value pair into the database.
static voidsetShowGTalkServiceStatus(ContentResolver cr, boolean flag)


注意,应用程序中应加入: <uses-permission android:name="android.permission.WRITE_SETTINGS" />