Android系統Setting預設引數修改
阿新 • • 發佈:2019-01-03
在定製系統中,通常需要修改Settings預設設定來達到需求的目的。而Settings相關資料庫操作的包位於framework/base/packages/SetingsProvider
修改Settings資料庫的預設值(準確點說是第一次開機後的值) ,對應的是SettingsProvider,他的資料自定義SqlDatabaserHepler是 DataBaseHelper
預設欄位的新增對應檔案為 :framework/base/packages/SetingsProvider/ res/values/defaultx.xml
根據源編的註釋和英文縮寫,可以知道defaultx.xml中引數的含義,這裡舉幾個例子說明。
設定預設輸入法為百度輸入法:
<string name="default_input_method" translatable="false">com.baidu.input/.ImeService</string>
此處com.baidu.input/.ImeService為百度輸入法包名
設定是否預設允許安裝第三方應用(某些定製簡化操作的系統需要用到)
<bool name="def_install_non_market_apps">false</bool>
藍芽和wifi的狀態
<bool name="def_bluetooth_on">false </bool>
<bool name="def_wifi_display_on">false</bool>
想要修改Settings資料庫的預設值,找到對應的引數修改就可以實現了,當然也有部分引數需要配合其他程式碼才能達到效果,例如內建百度輸入法並使用,除了在defaultx.xml中修改新增引數以外,還需要修改讀取程式碼,路徑和程式碼如下:frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
-String config_defaultIME=mContext.getResources ().getString(R.string.config_defaultIME);
-if(config_defaultIME!=null&&(!" ".equals(config_defaultIME)))
-loadSetting(stmt,Settings.Secure.DEFAULT_INPUT_METHOD,config_defaultIME);
+loadStringSetting(stmt, Settings.Secure.DEFAULT_INPUT_METHOD,
+R.string.def_input_method );
並將輸入法APK預編譯到系統中。