如何启动com.android.launcher?

时间:2012-06-18 20:19:58

标签: android launcher

我创建了一个充当启动器的应用程序,它按预期工作,但我想让用户能够启动原生Android启动器。

我知道Android Launcher的软件包名称是com.android.launcher

但是,当我尝试通过调用

从此包中获取启动意图名称时
packageManager.getLaunchIntentForPackage("com.android.launcher");

出现无效。

所以,我不知道如何使用包名来启动它,我想知道是否有其他方法?

TIA

1 个答案:

答案 0 :(得分:6)

  

我知道Android Launcher的软件包名称是com.android.launcher

除非可能会或可能不会在任何给定的设备上。事实上,我希望它可能只占百分之几的设备。大多数制造商用他们自己的替换库存主屏幕。

  

我想知道是否有其他方法?

使用PackageManagerqueryIntentActivities()查找支持ACTION_MAINCATEGORY_HOME的所有活动。从列表中删除您的活动。如果只剩下一个,则启动该活动。如果剩下多个,请选择自己的选择器以显示可用选项。这样,无论其他主屏幕存在,您都可以启动它。

<强>更新

如果ResolveInfo名为launchableACTION_MAIN / CATEGORY_HOME模板Intent名为i,则要启动该活动,请执行以下操作:

ActivityInfo activity=launchable.activityInfo;
ComponentName name=new ComponentName(activity.applicationInfo.packageName,
                                     activity.name);

i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK |
            Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
i.setComponent(name);

startActivity(i);