1. 程式人生 > >Android系統Setting預設引數修改

Android系統Setting預設引數修改

在定製系統中,通常需要修改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預編譯到系統中。