【问题标题】:How to Launch Home Screen Programmatically in Android [duplicate]如何在 Android 中以编程方式启动主屏幕 [重复]
【发布时间】:2011-01-21 08:40:01
【问题描述】:

我想用我的应用程序启动 Android 的主屏幕。主要目标是在用户按下专用键时向用户显示所有应用程序。其实方式并不重要。有什么想法吗?

【问题讨论】:

    标签: java android homescreen


    【解决方案1】:

    这是启动 HomeActivity 的代码

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

    【讨论】:

    • 谢谢,但我想打开向用户显示应用程序及其图标的屏幕。我说“主屏幕”时的意思。
    • 是的,他说的是这个
    • 此代码在Redmi Note 5 Pro MIUI Global 11.0.3 版本中不再有效。有谁知道出路吗?
    • 嗨@SudiptoMukherjee 你有什么发现吗?我在三星 S20+ android 11 上面临同样的问题。
    【解决方案2】:

    您在某些答案上所做的 cmets 表明您实际上想要启动 Launcher(如果是这种情况,您可能需要更新标题)。为此,请使用 Anand 提出的启动 home Activity 的相同方法。

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

    【讨论】:

    • 奇怪的是打开我的短信应用程序。
    • 这只会打开一个应用程序(或显示应用程序列表),其中大部分是“启动器”类别。它解释了 rekire 报告的行为。
    【解决方案3】:

    Android 中没有“向用户显示应用及其图标的屏幕”。

    您想到的是某些主屏幕的功能。没有标准化的Intent 来触发它的出现,也没有要求主屏幕有这样的功能。

    欢迎您自己编写。 Here is a sample projectListView 中显示可启动的活动。

    【讨论】:

    • 您好先生,我需要您的帮助,我尝试创建一个示例屏幕储物柜,它工作正常,我的问题是屏幕锁定后,当我点击主页按钮时,它导航到设备默认主页它将启动我的启动器,但需要在解锁后显示默认主页,我该怎么做。
    【解决方案4】:

    尝试这样的操作来点击返回按钮,你将转到主屏幕/...

    @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);
    }
    

    【讨论】:

      【解决方案5】:

      这里的解决方案都不适合我..

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

      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();
             }
         }
      }
      

      来自:https://stackoverflow.com/a/16483596/1241783

      希望这对某人有所帮助

      【讨论】:

        【解决方案6】:

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

        【讨论】:

          【解决方案7】:

          我想我参加聚会很晚了,但我也有类似的担忧。此处给出的答案会启动一个选择菜单,允许您选择启动器。如果您的代码中有多个启动器,则此处的答案:https://stackoverflow.com/a/8666155 可能会有所帮助。这直接启动Android的默认主屏幕。

          【讨论】:

            【解决方案8】:

            我已经用一行实现了它

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

            它的行为类似于主页按钮

            【讨论】:

              【解决方案9】:

              这对我很有用!

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

              有人可以解释为什么我们需要这个吗?

              startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
              

              顺便说一句,这就是我要找的

              moveTaskToBack(true);
              

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2012-03-04
                • 1970-01-01
                • 2011-07-17
                • 1970-01-01
                • 2011-04-05
                • 1970-01-01
                • 2011-03-22
                • 2010-12-29
                相关资源
                最近更新 更多