我正在用透明导航栏编写Android应用程序。为了相应地调整布局,我需要知道设备是否有软件或硬件按钮。检查Android设备是否有软件或硬件导航按钮
在我的研究中,我遇到了以下解决方案:
boolean hasMenuKey = ViewConfiguration.get(context).hasPermanentMenuKey();
这种方法并不像三星注4或HTC其中一个没有菜单键一些新的设备上工作,但还是有硬件按钮。
boolean hasBackKey = KeyCharacterMap.deviceHasKey(KeyEvent.KEYCODE_BACK);
boolean hasHomeKey = KeyCharacterMap.deviceHasKey(KeyEvent.KEYCODE_HOME);
boolean hasHardwareButtons = hasBackKey && hasHomeKey;
这不起作用,因为有些设备如索尼Xperia Z3 Compact返回true,虽然它有一个软件导航栏。
有没有可靠的方法来确定是否有物理按钮或软件导航栏?
可能重复[如何判断一个Android设备是否具有硬键(http://stackoverflow.com/questions/14853039/how-to -tell-an-an-android-device-has-hard-keys) – 2015-02-09 10:46:50