阅读更多

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

 

 在 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

            ResolveInfo r = list.get(i);

            set[i] = new ComponentName(r.activityInfo.packageName,

                    r.activityInfo.name);

            if (r.match > 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的设置

/android/framworks/base/

在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 组件,xml布局中属性详解
  2. 解决 Android(安卓)N 7.0 上 报错:android.os.FileUriExposedExce
  3. Android开发EditText属性
  4. Android(安卓)- 按钮组件详解
  5. Android(安卓)MediaController
  6. EditText
  7. Android(安卓)setTheme设置透明主题无效
  8. 软键盘设置
  9. Android(安卓)MPAndroidChart超漂亮图表框架

随机推荐

  1. android中异步消息的处理机制
  2. 反编译并且修改Android(安卓)APK包
  3. Android开发人暗讽阿里:抄得不到位 不懂
  4. Android下实现非启动界面Wifi连接
  5. Android跳转到通讯录获取用户名称和手机
  6. 别人花了几万元学的Android架构技术,我帮
  7. 【Android(安卓)性能优化】应用启动优化
  8. Android(安卓)事件全局监听(二)需要root权
  9. MDCC印象之三:Android热的背后
  10. Android(安卓)Studio如何提示函数用法