结论在最后一句,前面都是自己调试过程的流水记录:
7.0后,搜索引擎是动态设置
所以,要追踪设置的来源,以下为步骤
1,BrowserSettings.java
return entryValues[selectedItem];
for (int i = 0; i <entryValues.length ; i++) {
Log.d("ZXGLOG","entryValues = " +entryValues[i]+"/i = " + i);//selectedItem = 0,固定为0
log的结果
// D/ZXGLOG: entryValues = yahoo_es/i = 0
// D/ZXGLOG: entryValues = google/i = 1
// D/ZXGLOG: entryValues = ask_es/i = 2
// D/ZXGLOG: entryValues = bing_es_ES/i = 3
// D/ZXGLOG: entryValues = terra_es/i = 4
// D/ZXGLOG: entryValues = hispavista/i = 5
2,BrowserSettings.java
getSearchEngineName()
entryValues[i] = searchEngines.get(i).getName(); //浏览器引擎赋值的地方
3,searchEngines从这里来:(BrowserSettings.java)
List<com.mediatek.common.search.SearchEngine> searchEngines = searchEngineManager.getAvailables();//engine comes frome here
4,通过系统服务得到 searchEngineManager (BrowserSettings.java)
SearchEngineManager searchEngineManager =
(SearchEngineManager) mContext.getSystemService(Context.SEARCH_ENGINE_SERVICE);
5,通过 getAvailables() ,跳转到SearchEngineManager .java的方法 getAvailables()
public List<SearchEngine> getAvailables() {
try {
return mService.getAvailables();
} catch (RemoteException e) {
Slog.e(TAG, "getSearchEngineInfos() failed: " + e);
return null;
}
}
可以看出是从 mService.getAvailables();这里来的
6,m