Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Android中以编程方式启动主屏幕_Java_Android_Homescreen - Fatal编程技术网

Java 如何在Android中以编程方式启动主屏幕

Java 如何在Android中以编程方式启动主屏幕,java,android,homescreen,Java,Android,Homescreen,我想用我的应用程序启动Android的主屏幕。主要目标是在用户按下专用键时向用户显示所有应用程序。其实,路并不重要。有没有这样做的想法?我不确定我是否完全理解您的意图! 但是,如果您的意思是希望用户能够通过在应用程序内部单击来访问另一个应用程序,那么您应该检查“intent”。 在eclipse中运行API演示示例代码,然后运行App->Intents以下是启动HomeActivity的代码 Intent startMain = new Intent(Intent.ACTION_

我想用我的应用程序启动Android的主屏幕。主要目标是在用户按下专用键时向用户显示所有应用程序。其实,路并不重要。有没有这样做的想法?

我不确定我是否完全理解您的意图! 但是,如果您的意思是希望用户能够通过在应用程序内部单击来访问另一个应用程序,那么您应该检查“intent”。
在eclipse中运行API演示示例代码,然后运行App->Intents

以下是启动HomeActivity的代码

        Intent startMain = new Intent(Intent.ACTION_MAIN);
        startMain.addCategory(Intent.CATEGORY_HOME);
        startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(startMain);
Android中没有“向用户显示带有图标的应用程序的屏幕”

您想到的是一些主屏幕的功能。没有标准化的
意图
来触发此显示,并且不要求主屏幕具有此功能


欢迎你自己写。它在
列表视图中显示可启动的活动

您对一些答案的评论表明您确实想要启动启动器(如果是这样的话,您可能需要更新标题)。要做到这一点,请使用Anand提出的发起家庭活动的相同方法

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

尝试类似这样的操作,单击“后退”按钮,您将转到主屏幕/

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        // Display confirmation here, finish() activity.
        Intent startMain = new Intent(Intent.ACTION_MAIN);
        startMain.addCategory(Intent.CATEGORY_HOME);
        startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(startMain);
        return true;
    }
    return super.onKeyDown(keyCode, event);
}

我想我参加晚会已经很晚了,但我也有类似的担心。这里给出的答案启动一个选择菜单,允许您选择启动器。如果代码中有多个启动器,这里的答案是:可能会有帮助。这直接启动Android的默认主屏幕。

这里没有一个解决方案适合我

我使用下面的代码使它工作

PackageManager pm = getPackageManager();
Intent i = new Intent("android.intent.action.MAIN");
i.addCategory("android.intent.category.HOME");
List<ResolveInfo> lst = pm.queryIntentActivities(i, 0);
if (lst != null) {
   for (ResolveInfo resolveInfo : lst) {
       try {
       Intent home = new Intent("android.intent.action.MAIN");
       home.addCategory("android.intent.category.HOME");
       home.setClassName(resolveInfo.activityInfo.packageName, resolveInfo.activityInfo.name);
       startActivity(home);
       break;
       } catch (Throwable t) {
           t.printStackTrace();
       }
   }
}
PackageManager pm=getPackageManager();
Intent i=newintent(“android.Intent.action.MAIN”);
i、 addCategory(“android.intent.category.HOME”);
列表lst=pm.querytentActivities(i,0);
如果(lst!=null){
对于(ResolveInfo ResolveInfo:lst){
试一试{
Intent home=newintent(“android.Intent.action.MAIN”);
home.addCategory(“android.intent.category.home”);
setClassName(resolveInfo.activityInfo.packageName,resolveInfo.activityInfo.name);
星触觉(家);
打破
}捕获(可丢弃的t){
t、 printStackTrace();
}
}
}
从以下方面获得:


希望这能帮助别人

我用一句话就做到了

moveTaskToBack(true); //activity.moveTaskToBack(true);

它的行为就像主页按钮

这对我来说很好

Intent startMain = new Intent(Intent.ACTION_MAIN);
    startMain.addCategory(Intent.CATEGORY_HOME);      
    startActivity(startMain);
有人能解释一下我们为什么需要这个吗

startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
顺便说一句,这就是我要找的

moveTaskToBack(true);

Thx,但我想打开屏幕,向用户显示带有图标的应用程序。我在说“主屏幕”时是这么说的。是的,这就是他所说的。该代码在Redmi Note 5 Pro MIUI Global 11.0.3版本中不再有效。有人知道出路吗?嗨,SudiptoMukherjee,你找到什么了吗?我在三星S20+android 11上也遇到了同样的问题。奇怪的是,它打开了我的短信应用程序。这只会打开一个应用程序(或显示一个应用程序列表),其中包含“launcher”类别,这是大多数应用程序。它解释了rekire报告的行为。您好,先生,我需要您的帮助,我试图创建一个示例屏幕锁它工作正常,我的问题是在屏幕锁后,它导航到设备默认主页,当我单击主页按钮时,它将启动我的启动器,但需要在解锁后显示默认主页,我如何操作。