【问题标题】:How to control what the home button on my android wearable device does when pressed?如何控制我的 android 可穿戴设备上的主页按钮在按下时的作用?
【发布时间】:2021-02-08 10:36:48
【问题描述】:

当我点击智能手表的屏幕时,我有一项活动开始。有一个计时器和一堆事情发生,但这个过程是至关重要的,所以我正在处理某些情况或可能发生的事情会扰乱事情的流程。

所以基本上,我想防止手表的主页按钮在计时器运行时退出应用程序并转到主屏幕。我一直在寻找这个,大多数人说要覆盖 onBackPressed 方法。但这是用于返回按钮的,我意识到这个按钮是主页按钮而不是返回按钮。

 frameLayout.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            if (event.getAction() == MotionEvent.ACTION_DOWN)
            {
                clicked = clicked + 1;
                if (clicked == 2)
                {
                    Toast.makeText(toolandmode.this, "Clicks:" + clicked, Toast.LENGTH_SHORT).show();
                    startTimer();
                }
                else if (clicked >= 4)
                {
                    Toast.makeText(toolandmode.this, "Clicks:" + clicked, Toast.LENGTH_SHORT).show();
                    AlertMessage();
                }
            }
            return true;
        }
    });

这是我使用的主要方法

【问题讨论】:

    标签: android wear-os countdowntimer back-button


    【解决方案1】:

    只需覆盖 onBackPressed 函数。

    @Override
    public void onBackPressed ()
    {
      //Control the flow 
     }
    

    【讨论】:

    • 我做了,但由于某种原因它不起作用,我的意思是在可穿戴设备中不一样吗?我需要在我的计时器方法中还是在我提供的代码示例中的 if 语句中调用该函数?
    【解决方案2】:

    如果它可以解决您的问题,请使用第三方库。 链接在这里: https://github.com/shaobin0604/Android-HomeKey-Locker

    【讨论】:

    • 我想我找到了问题,按钮是主页按钮,手表使用向左滑动手势返回。那么除了主页按钮之外,还有什么相当于我所要求的?
    • 不知道这是怎么回事,背后的逻辑是什么?
    • 实际上很简单,如果调用 startTimer() 方法,我希望禁用主页按钮,所以基本上当满足上面的 if 语句时,我希望禁用主页按钮。
    • 对不起,我没有正确阅读问题尝试更新的答案。
    • 不,是不是和可穿戴设备有点不同?
    【解决方案3】:

    普遍的共识是,您无法覆盖 Wear OS 设备上的主页按钮行为,就像您无法覆盖 Android 手机上的主页按钮一样。这是为了防止开发人员阻止用户离开应用程序而设计的。即使有一个 hacky 方法来做到这一点,这也不是官方支持的,并且可能在未来的操作系统版本中随时停止工作。我强烈建议不要这样做,因为它违背了设备的基本导航模型。

    有关人们认为他们需要覆盖主页按钮的常见用例的更多详细信息以及一些解决方法,请参见this blog post

    【讨论】:

      猜你喜欢
      • 2016-04-04
      • 2016-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多