2011-05-18 45 views
1

我希望能够在我的应用程序中启动主屏幕的特定页面,有什么办法可以做到这一点吗?如何以编程方式在Android中启动特定主页

下面是启动主屏幕的典型方法,但我没有看到添加屏幕页面或索引任何有价值的东西。

Intent startMain = new Intent(Intent.ACTION_MAIN); 
startMain.addCategory(Intent.CATEGORY_HOME); 
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
startActivity(startMain); 

回答

1

不与默认主屏幕。
Launcher活动源(在https://android.googlesource.com/platform/packages/apps/Launcher/+/master/src/com/android/launcher/Launcher.java#822)里藏着的这个块的代码(见行822):

if (!mWorkspace.isDefaultScreenShowing()) { 
    mWorkspace.moveToDefaultScreen(); 
} 

所以这是不可能指定特定页面。

+0

是的,这是关于我后来发现的一些其他帖子的想法。我将不得不建立我自己的启动器来添加这个简单的功能。我想到的解决方法是更改​​默认屏幕,这可能吗?到目前为止,我还没有找到任何信息。但我可以做的是更改默认屏幕,启动回家,然后将其设置回来。一个薄弱的工作,但它会做我想要的东西我认为 – 2011-05-18 16:15:51

+0

那么,看看http://android.git.kernel.org/?p=platform/packages/apps/Launcher.git;a=blob;f= SRC/COM /机器人/发射器/ Workspace.java; H = 2e04311f530003dbd76695f46876a785164acb99; HB = HEAD你会发现,默认屏幕被硬连接:'mDefaultScreen = a.getInt(R.styleable.Workspace_defaultScreen,1);'(见行131)。所以你可能运气不错。有一个'snapToScreen'方法,但是它是封装私有的,你可能会花时间搞清楚如何发送消息。是的,只有当用户没有使用自定义主屏幕应用程序时才能使用。 – Femi 2011-05-18 16:45:31

1

我不知道有一种方法来启动主屏幕的特定“页面”。我想回答这个问题,因为我觉得有些事情你没有考虑到:一个用户可能有不同的应用程序集作为他们的家。例如,我使用SlideScreen应用程序作为我的家庭应用程序,该应用程序没有与它不同的“页面”。

我建议寻找不同的方式来完成你想要什么,除非你只是使用的应用程序自己的设备上,并且不觉得你曾经打算使用一个不同的应用程序作为你的家。

相关问题