1. 程式人生 > >[RK3288][Android6.0] SettingsProvider資料庫小結

[RK3288][Android6.0] SettingsProvider資料庫小結

Platform: RK3288
OS: Android 6.0
Kernel: 3.10.92

資料庫從db改成了xml的形式
/data/data/com.android.providers.settings/../settings.db --> /data/system/users/userid/settings_[system|global|secure].xml

global,secure,system三者區別:
Nested classes
classSettings.Global
Global system settings, containing preferences that always apply identically to all defined users.  
classSettings.Secure
Secure system settings, containing system preferences that applications can read but are not allowed to write. 
classSettings.System
System settings, containing miscellaneous system preferences. 

三個輸入法相關設定的作用:
default_input_method
系統預設選擇的輸入法
enabled_input_methods
當前系統支援的輸入法,會在setting應用的介面列出來
selected_input_method_subtype
預設輸入法使用哪種語言,比如搜狗輸入法是英文或者中文

針對輸入法的修改可以直接在
/data/system/users/0/settings_secure.xml 中修改生效

資料庫的處理檔案是:

frameworks\base\packages\SettingsProvider\src\com\android\providers\settings\DatabaseHelper.java

參考
http://stackoverflow.com/questions/33071758/you-cannot-change-private-secure-settings-how-to-toggle-ringtone-vibration-i
https://github.com/android/platform_frameworks_base/commit/683914bfb13908bf380a25258cd45bcf43f13dc9
https://developer.android.com/reference/android/provider/Settings.html
http://blog.csdn.net/zhoumushui/article/details/40051331
https://github.com/android/platform_frameworks_base/commit/683914bfb13908bf380a25258cd45bcf43f13dc9