android - 无法在特定 Android 设备上禁用主页按钮

标签 android android-homebutton

我知道这个问题已经被问过很多次,答案总是“不,我们不能禁用主页按钮”。

我有一些不同的问题要问。

我编写了简单的代码,其中我的 Activity 覆盖了 onKeyDown() 并在所有按键按下时返回 true。

从理论上讲,这意味着无论谁打开应用程序,都会被卡在那里,无法退出应用程序。

当我在不同的设备上测试这个应用程序时,我做了以下观察:

  1. 在操作系统为 2.2.2 的摩托罗拉设备上,主页按钮被禁用。
  2. 在操作系统为 2.3.5 的 HTC 设备上,主页按钮被禁用。
  3. 在操作系统为 2.3.7 的 Sony 上,主页按钮被禁用。
  4. 在操作系统为 2.2.1 和 2.3.3 的三星上,主页按钮被禁用。
  5. 在操作系统为 2.3.6 和 4.0.4 的三星上,主页按钮保持启用状态。

这些观察结果似乎非常矛盾。

有没有人知道为什么不同的设备表现不同以及处理这种情况的最佳方法是什么。

据我了解,目前还没有厂商定制过Android OS。每个人都在其之上放置 UI 层,但没有人触及内部结构。

最佳答案

I know this question has been asked many times and the answer is always "No we cant disable home button".

如果你想处理主页按钮,实现一个主屏幕。

Does any one have any idea , why different devices are behaving differently

因为它们是不同的设备,并且供应商进行了更改。此外,在 4.0.4 的情况下,可能已添加额外的保护措施,以帮助防止恶意软件作者劫持主页按钮而不是主屏幕。

what is the best way to handle such scenario

如果你想处理主页按钮,实现一个主屏幕。

Everyone is putting there UI layer on top of it but no one has touched the internals.

这是不正确的。几乎每个 设备供应商都在不同程度上“接触过内部结构”。只要遇见the compatibility requirements对于 Play 商店,Google 认为他们的更改是可以接受的。

关于android - 无法在特定 Android 设备上禁用主页按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10349685/

相关文章:

android - 从 Android 麦克风获取分贝

java - SoundPool: "path"中的 "load(String path, int priority)"是什么

android - 在 onClickListener 中关闭 Anko 对话框

android - ActionBarSherlock中设置Home应用程序图标的方法

java - Android 主页按钮、计时器问题

android - 按下设备的主页键后,如何始终在图标按下时打开当前 Activity

java - 如何在 2 个线程的 ArrayList 中避免 NullPointerException

android - 在 Android 应用程序的页面转换期间看到的白色背景

android - 按下主页按钮时如何执行代码?