Android 7.1 添加programmable keys的默认配置

来源:互联网 发布:双翼软件 编辑:程序博客网 时间:2024/06/05 14:11

Android L (5.1)及以前的版本

Settings参数保存在 /data/data/com.android.providers.settings/databases/settings.db里,里面有三个表global, system, secure. 

通常这样查看数据

adb shell sqlite3 data/data/com.android.providers.settings/databases/settings.db "select * from secure"

或者adb pull settings.db到本地,然后用sqlite expert打开即可。


Android M (6.0)开始出现变化

不同用户放不同的路径下,如果没有创建新用户,则在/data/system/users/0下

settings_global.xml, settings_system.xml,  settings_secure.xml 


直接修改例子

adb shell settings get global captive_portal_server

adb shell settings put global captive_portal_server 0

添加数据库中的默认数据在:

在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方法对该值进行读取和写入操作了。

数据库中的默认数据在frameworks/base/packages/SettingsProvider/res/values/defaults.xml中定义

通过frameworks\base\packages\SettingsProvider\src\com\android\providers\settings\DatabaseHelper.Java对数据库结构及初始值进行初始化。

 

如果要在系统中添加默认设置,需要如下步骤(以带物流键盘的系统中默认打开软键盘为例):

1、在defaults.xml中为新加的数据定义一个默认值

<integer name="show_ime_with_hard_keyboard">1</integer>

 

2、在DatabaseHelper.java中的loadSecureSettings(SQLiteDatabase db)方法中加入新字段的添加代码

loadStringSetting(stmt, Settings.Secure.SHOW_IME_WITH_HARD_KEYBOARD,                    R.string.show_ime_with_hard_keyboar);

 

3、重新编译




0 0