2

我正在开发简单的主屏幕应用程序。因此,当我按下主页按钮时,我可以在本机和我的主屏幕应用程序之间进行选择。问题是:如果我在重新启动手机时将我的应用程序设置为默认主屏幕应用程序,我将无法进入本机主屏幕应用程序,因为它从未启动,因此我的应用程序位于堆栈顶部。如果我的手机是默认主屏幕应用程序,我如何在重启手机时进入本机主屏幕应用程序?我有想法:在启动时,我可以检查调用意图 - 如果它包含 Home 类别,我将调用本机主屏幕应用程序。像这样的东西:

 Intent creatingIntent = getIntent();
 if (creatingIntent.hasCategory(Intent.CATEGORY_HOME))
 {
     creatingIntent.setPackage("com.android.launcher");
     creatingIntent.setComponent(new ComponentName
     ("com.android.launcher",
     "com.android.launcher2.Launcher"));
     startActivity(creatingIntent);
     finish();
 }

但问题是我不知道如何获取本机主屏幕应用程序的组件名称,有人可以帮忙吗?

4

1 回答 1

1

一个家庭应用程序(=launcher)的目标是取代原生启动器,强迫2个启动器共存很奇怪。但是如果你成功地做这样的事情,当你按下主页按钮时,它也会启动 Native 启动器。

要回答您的问题,本机启动器取决于目标设备。示例:三星不使用与谷歌相同的启动器,因此组件名称会有所不同。

您是否尝试过在启动时启动您的应用程序的广播接收器?有了它,您不必将您的应用程序作为默认家庭应用程序,因此您可以在按下 Home 按钮时保留选择。但是,如果用户选择您的应用作为默认应用,这不是解决方案。

也许你可以看看这里如何在Android中使用自定义屏幕而不是默认开始屏幕?

于 2013-01-31T12:14:59.403 回答