如何在 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>
我正在开发一个用作家庭启动器的应用程序。我知道我无法以编程方式清除当前的家庭应用程序启动器,但我希望引导用户选择我的应用程序。
我知道如何使用 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>