如何在 Android 上打开默认主应用屏幕意图

How to open Default Home App screen intent on Android

我正在开发一个用作家庭启动器的应用程序。我知道我无法以编程方式清除当前的家庭应用程序启动器,但我希望引导用户选择我的应用程序。

我知道如何使用 PackageManager 检查我的应用程序是否设置为家庭启动器,但这并没有给我设置家庭应用程序的方法。

我也曾尝试使用 Intent 到 select 家庭启动器,但是打开的这个对话框没有为用户提供选择默认家庭启动器的方法

 final Intent startMain = new Intent(Intent.ACTION_MAIN);
            startMain.addCategory(Intent.CATEGORY_HOME);
            startActivity(Intent.createChooser(startMain, "Choose Home App));

但是看着 Launcher (Nova) 我可以看出它似乎 运行 有意打开本机启动器屏幕。我该怎么做?

PackageManager packageManager = activity.getPackageManager();
ComponentName componentName = new ComponentName(activity, YourLauncher.class);
packageManager.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);

Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME)
        .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
activity.startActivity(intent);
activity.finishAndRemoveTask();

和清单中的启动器 activity:

        <activity
        ...
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.HOME" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>