【发布时间】:2015-02-09 09:31:52
【问题描述】:
我正在编写一个带有透明导航栏的 Android 应用。要相应地调整布局,我需要知道设备是否有软件或硬件按钮。
在我的研究过程中,我遇到了以下解决方案:
boolean hasMenuKey = ViewConfiguration.get(context).hasPermanentMenuKey();
这种方法不适用于三星 Note 4 或 HTC One 等没有菜单键但仍有硬件按钮的新设备。
boolean hasBackKey = KeyCharacterMap.deviceHasKey(KeyEvent.KEYCODE_BACK);
boolean hasHomeKey = KeyCharacterMap.deviceHasKey(KeyEvent.KEYCODE_HOME);
boolean hasHardwareButtons = hasBackKey && hasHomeKey;
这也不好用,因为像 Sony Xperia Z3 Compact 这样的设备虽然有一个软件导航栏,但仍返回 true。
有没有可靠的方法可以判断是否有物理按钮或软件导航栏?
【问题讨论】:
标签: android