android啟動時自動化佈建預設瀏覽器
參考:http://blog.csdn.net/pediyasm/article/details/7987389
1.設定預設應用的原理
當設定了預設應用後,本文以UC瀏覽器為例子,在手機/data/system/packages.xml中就會新增如下資訊:
- <preferred-activities>
- <item name="com.UCMobile/.main.UCMobile" match="200000" set="2">
- <set name="com.UCMobile/.main.UCMobile" />
- <set name="com.android.browser/.BrowserActivity" />
- <filter>
- <action name="android.intent.action.VIEW" />
- <cat name="android.intent.category.DEFAULT" />
- <scheme name="http" />
- </filter>
- </item>
- </preferred-activities>
2.實現方法。有兩種方法可以實現:一種是在Provision.apk中實現,一種是在PackageManagerService.java中實現。具體代碼如下:
- private void addPreferredActivityForULauncher() {
- IntentFilter filter = new IntentFilter();
- filter.addAction("android.intent.action.VIEW");
- filter.addCategory("android.intent.category.DEFAULT");
- filter.addDataScheme("http");
- ComponentName preActivity = new ComponentName("com.UCMobile", "com.UCMobile.main.UCMobile");
- ComponentName[] set = new ComponentName[] {preActivity,new ComponentName("com.android.browser", "com.android.browser.BrowserActivity")};
- mSettings.mPreferredActivities.addFilter(
- new PreferredActivity(filter, 0x200000, set, preActivity));
- mSettings.writeLPr();
- }
- if(isFirstBoot()){
- addPreferredActivityForULauncher();
- }
3.通過mm命令產生services.jar,並push到手機/system/framework下。同時將uc瀏覽器預裝進系統。恢復出廠預設值即可生效。