禁用Android主页按钮

时间:2014-07-08 08:24:04

标签: android android-navigation android-homebutton

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

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

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

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

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

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

我在这里截止日期。任何有关这方面的帮助都会对我有所帮助。我也愿意采用其他方式来实现上述无意义的功能。

谢谢:)

4 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

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

在+4.0我不这么认为。请查看以下主题:Disable Home button in Android 4.0+https://stackoverflow.com/a/10025904/3640637

希望它有所帮助。

答案 2 :(得分:0)

<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.HOME" />

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

答案 3 :(得分:0)

我认为改变你的做法会更好。如果你想做一些永远不会被Home按钮关闭的东西,只需创建服务并向Window Manager添加一个视图。使用布局参数,您将能够绘制甚至主页按钮不会关闭它的所有内容。生活样本可能是Facebook使者的新聊天。 你可以提供2项服务。一个用于覆盖状态栏图层,另一个用于覆盖屏幕的另一部分。请看一下这个样本

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

您的解释仅适用于较新版本。所以只需要结合或采取第一个来实现这一目标。祝你好运:)

如果这里的人有其他好的方法,那么我想听听,因为这对我很有意思。