如果有留意Android中系统设置Settings里面的源码,你会发现代码中频繁用到了Settings.System操作,该类通过键值对的形式,将一些特定的值以全局的模式保存到Setting的数据库中,我们可以通过它提供的get或者put形式的方法对其中的数据进行读写操作,(非系统级别的应用需要添加对应的权限)。当然,如果能够对frameworks进行修改,我们甚至可以在该类中添加一些特定的值,以方便自己或他人使用。
一、通过Settings.System进行读写
//其中"getXXX"代表对应的类似方法,如getInt()、getBoolean、putString()等。
//通过变量名称获取值,如果变量不存在,数据库中没有设置过初始值或者该值类型不对,将抛出SettingNotFoundException异常
Settings.System.getXXX(ContentResolver cr, String name);
//通过变量名称获取值,如果发生上面方法中导致异常的情况,将返给定的默认值
Settings.System.getXXX(ContentResolver cr, String name, XXX def);
//将指定名称的值写入数据库
Settings.System.putXXX(ContentResolver cr,String name, XXX Value);

非系统权限,需要在App项目的AndroidMainfes.xml文件中添加如下权限:

 android:name="android.permission.READ_SETTINGS" /> android:name="android.permission.WRITE_SETTINGS" />

二、在Settings.System添加一个自定义的全局变量
Settings.java文件位于frameworks\base\core\java\android\provider下,打开该文件,搜索关键词 SETTINGS_TO_BACKUP ,共有两处,一处是在Settings里面,另一处在内部类Settings.System里面,在SETTINGS_TO_BACKUP数组上面添加自定义变量,同时在该数组里面添加自定义变量名称,Settting和内部类System都需要添加(共四个地方),比如自定义系统变量SYSTEM_ZWH:

 public static final String SYSTEM_ZWH = "system_zwh";Public static final String[] SETTINGS_TO_BACKUP = {...SYSTEM_ZWH,... }

然后,在代码中我们就可以通过对于的get和put方法对该值进行读取和写入操作了。

更多相关文章

  1. Nokia N900刷android 2.3.4
  2. Android(安卓)XML布局中关于资源的使用
  3. Android(安卓)NDK——必知必会之Native线程操作及线程同步全面详
  4. Android(安卓)Studio 中提示 Private field 'mType' is assigned
  5. Android内存的全面分析-让你吃透
  6. Android常见40道原理性面试,去面试之前必须要了解的知识点
  7. .如何避免Android内存泄漏
  8. Android中是否推荐使用枚举Enum
  9. android 编译系统阅读与分析(1)-envsetup.sh (editing....)

随机推荐

  1. Android(安卓)自定义progressDialog
  2. android获取应用名称,判断应用是否安装
  3. Android改变Spinner弹出框的位置
  4. RelativeLayout用到的一些重要的属性
  5. Banner
  6. ubuntu android交叉编译c程序 ndk
  7. Android(安卓)Partitions Explained: boo
  8. Android(安卓)uses-permission权限
  9. Android电话录音
  10. Android简单的下拉刷新(谷歌官方)