分享

查询/设置Settings的值

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

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

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

需要权限:

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



PS:

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

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


=========================================================================

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

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

http://blog.csdn.net/zzp16/article/details/7888052

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多