Android 4.0检测用户是否有硬件返回/主页密钥

时间:2012-02-08 23:39:27

标签: android

ICS / HC中是否有办法检测用户是否可以访问硬件菜单键?

根据配置,我希望改变操作栏的填充方式,例如:

如果用户有物理主页按钮,请减少操作栏中显示的按钮数量。

谢谢, 劳伦斯

2 个答案:

答案 0 :(得分:2)

我花了一些时间,但我找到了比依靠 hasPermanentMenuKey()更可靠的方法,这对于像 HTC One 这样的新手机不起作用没有菜单键,但确实有家庭&后退键所以不需要(或显示)软导航栏。为了解决这个问题,请尝试以下代码来检查后退按钮:

boolean hasMenuKey = ViewConfiguration.get(context).hasPermanentMenuKey();
boolean hasBackKey = KeyCharacterMap.deviceHasKey(KeyEvent.KEYCODE_BACK);

if(!hasMenuKey && !hasBackKey) {
    // Do whatever you need to do, this device has a navigation bar
}

答案 1 :(得分:0)

ICS和蜂窝(遗憾地)取代了菜单键,用于组合操作栏和系统栏,而不让我们配置何时显示菜单按钮。

只是不要假设它存在,或者将目标sdk设置为10,它将始终显示菜单键(看起来像3个点)。

无论如何,如果你找到一种方法来检查菜单按钮是否存在,那将会很有趣。