参考了一下两篇文章:

http://blog.csdn.net/jia4525036/article/details/18036765

http://blog.sina.com.cn/s/blog_4ad8d46c01019zq4.html


由于项目需求更改,在此做保留以后方便使用

 在 frameworks/base/core/java/com/android/internal/app/ResolverActivity.java 中作修改

根据需要默认Launcher来设置默认

private void setDefaultLauncher(String defPackageName,String defClassName) {    if ((defPackageName != null && defPackageName.trim().length() > 1) && (defClassName != null && defClassName.trim().length() > 0)) {        IntentFilter filter = new IntentFilter();        filter.addAction("android.intent.action.MAIN");        filter.addCategory("android.intent.category.HOME");        filter.addCategory("android.intent.category.DEFAULT");        Intent intent=new Intent(Intent.ACTION_MAIN);        intent.addCategory(Intent.CATEGORY_HOME);        List list = new ArrayList();        list = getPackageManager().queryIntentActivities(intent, 0);        final int N = list.size();        ComponentName[] set = new ComponentName[N];        int bestMatch = 0;        for (int i=0; i bestMatch) bestMatch = r.match;        }        ComponentName preActivity = new ComponentName(defPackageName, defClassName);        getPackageManager().addPreferredActivity(filter, bestMatch, set,preActivity);    }}

在onCreate方法中添加调用

protected void onCreate(Bundle savedInstanceState) {    //++++++++++++    boolean firstBoot = (Settings.System.getInt(getApplication().getContentResolver(),                Settings.System.DEFAULT_HOME_SETTING_CHANGED, 0) == 0);    if(firstBoot){        String defPackageName = "com.panasonic.india.flexuihome";        String defClassName = "com.panasonic.india.flexuihome.Launcher";        setDefaultLauncher(defPackageName,defClassName);        android.util.Log.i("deflauncher : ","deflauncher : PackageName = "+            defPackageName+" ClassName = "+defClassName);        Intent defIntent = new Intent();        defIntent.setClassName(defPackageName, defClassName);        defIntent.setAction("android.intent.action.MAIN");        defIntent.addCategory("android.intent.category.HOME");        defIntent.addCategory("android.intent.category.DEFAULT");        startActivity(defIntent);        Settings.System.putInt(getApplication().getContentResolver(),                Settings.System.DEFAULT_HOME_SETTING_CHANGED,1);        this.finish();    }    //++++++++++++    // Use a specialized prompt when we're handling the 'Home' app startActivity()    final int titleResource;    final Intent intent = makeMyIntent();    final Set categories = intent.getCategories();    if (Intent.ACTION_MAIN.equals(intent.getAction())            && categories != null            && categories.size() == 1            && categories.contains(Intent.CATEGORY_HOME)) {        titleResource = com.android.internal.R.string.whichHomeApplication;    } else {        titleResource = com.android.internal.R.string.whichApplication;    }    onCreate(savedInstanceState, intent, getResources().getText(titleResource),            null, null, true);}

DEFAULT_HOME_SETTING_CHANGED的设置

在core/java/android/provider/Settings.java的public static final class System extends NameValueTable{}中添加

public static final String DEFAULT_HOME_SETTING_CHANGED = "default_home_setting_changed";

packages/SettingsProvider/res/values/defaults.xml中添加

0

packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java

在private void loadSystemSettings(SQLiteDatabase db){}中添加中添加

loadIntegerSetting(stmt, Settings.System.DEFAULT_HOME_SETTING_CHANGED, R.integer.default_launcher_value);


更多相关文章

  1. Android(安卓)Http请求框架二:xUtils 框架网络请求
  2. Android(安卓)P WindowManager (一) 直观感受每个window的添加
  3. Android(安卓)Studio制作简易计算器源代码及详解
  4. Android(安卓)前置摄像头的默认是180度,导致应用拍照和录制视频是
  5. 8.1.2 Android中的13种Drawable小结 Part 2
  6. 设置Android默认锁定屏幕旋转
  7. EditText常用属性
  8. 关于CoordinatorLayout展开与折叠相关属性
  9. Android(安卓)自定义CheckBox 样式

随机推荐

  1. Android(安卓)输入系统解析 (2)
  2. android模仿微信朋友圈图片预览转场缩放
  3. 关于 AndroidJavaCompile.setDependencyC
  4. Android的Layout --- 布局
  5. 两分钟彻底让你明白Android(安卓)Activit
  6. Android(安卓)动画 - ScaleAnimation 缩
  7. Android(安卓)水波纹扩散效果
  8. Android通过设置颜色的透明度来获取颜色
  9. 打开Android(安卓)Studio报错 "required
  10. Paint的setMaskFilter(MaskFilter maskfi