【问题标题】:Disabling home button Android禁用主页按钮Android
【发布时间】:2023-03-20 11:27:02
【问题描述】:

我已经阅读了很多关于我们如何无法覆盖或禁用主页按钮的信息。我也同意它在很多方面都是有风险的,因为有些人可能会错误地利用它。但不幸的是,这是我的应用程序中的一项要求。

我能够使用Immersive 功能将它们隐藏在运行 Android Kitkat 的设备中。确实,当用户从屏幕边缘滑动时,它会使状态和导航栏可见。但我找到了一种方法,通过使用CountDownTimer 每隔一秒左右调用Immersive 再次消失它。结果令人满意,并完成了工作。

但我没有任何解决方案适用于无法在 Kitkat 上运行的 Android 设备,因为每次与屏幕交互时都会出现条形图。即使条形隐藏但每次用户触摸屏幕时都会出现,但看起来并不好。所以Immersive 功能是没有问题的,因为除了 Kitkat 之外它不会运行。

我确实尝试了各种 SO 帖子中建议的另一种解决方案 -

在屏幕锁定时显示我的活动。这帮助我摆脱了第三个按钮(主页按钮右侧的按钮,不知道它叫什么)。我们可以轻松处理后退按钮。但是仍然保留主页按钮。我需要以某种方式使这个主页按钮禁用或什么都不做。或者至少(最坏的情况)当我点击主页按钮时导航到我的应用程序(有可能吗?)

我正在寻找的是用户应该只能通过我在应用程序中提供的按钮离开应用程序,不应该有任何其他方式。有人可以建议我实现这一目标的方法吗?

我在这里的最后期限。对此的任何帮助都会对我有很大帮助。我也对实现上述无意义功能的其他方式持开放态度。

谢谢:)

【问题讨论】:

    标签: android android-navigation android-homebutton


    【解决方案1】:

    Android 5.0 引入了一个新的屏幕固定 API,可让您暂时限制用户离开您的任务或被通知打断。一旦您的应用激活屏幕固定,用户将无法看到通知、访问其他应用或返回主屏幕,直到您的应用退出该模式。

    https://developer.android.com/about/versions/android-5.0.html

    【讨论】:

      【解决方案2】:

      我对这个主题很感兴趣,一个讨论相同的主题是几周前发布的。结论是关于旧版本存在外部库和/或简单代码来实现和覆盖主页按钮。

      在 +4.0 上,我不这么认为。检查此主题:Disable Home button in Android 4.0+https://stackoverflow.com/a/10025904/3640637

      希望对你有帮助。

      【讨论】:

      • 谢谢 我正在考虑将我的应用程序作为主屏幕。但是否可以从代码中禁用我的应用程序作为主屏幕。因为最终我将不得不导航到 android 的默认主屏幕。
      【解决方案3】:
      <category android:name="android.intent.category.DEFAULT" />
      <category android:name="android.intent.category.HOME" />
      

      将此添加到清单中的活动中。

      【讨论】:

      • 这会做什么?我想我在许多其他帖子中看到了这一点,人们说它不起作用。顺便说一句,它有什么作用?
      • 它会将您返回到具有按下主页按钮的意图的活动。这是自定义启动器使用的。
      • 好的,到目前为止一切都很好。但是否可以从代码中禁用我的应用程序作为主屏幕。因为最终我将不得不导航到 android 默认主屏幕。
      • 让用户选择一个启动器,除了你的。检测用户是否在您的应用中。如果是,那么什么也不做。如果不是,则将他重定向到他之前选择的启动器。
      【解决方案4】:

      我认为你改变你的方法会更好。如果你想制作一些永远不会被主页按钮关闭的东西,只需制作服务并向窗口管理器添加一个视图。使用 Layout 参数,您将能够在即使主页按钮也无法关闭它的所有内容之上进行绘制。生活样本可能是 Facebook Messenger 的新聊天。 您可以进行 2 项服务。一个覆盖状态栏层,另一个覆盖屏幕的其他部分。请查看此示例

      我尝试使用下面的示例阻止主页按钮,但这只会阻止硬主页按钮 - https://github.com/shaobin0604/Android-HomeKey-Locker

      您的解释仅对较新的版本有所帮助。因此,只需结合或采用第一个即可实现这一目标。祝你好运:)

      如果这里的人们有其他好的方法,那么我很想听听,因为这对我来说很有趣。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-01-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-24
        相关资源
        最近更新 更多