遇到一个问题,就是在判断是否有虚拟按键的时候大部分机型可以,只有vivo X9获取到的虚拟按键是错误的,然后看到如下代码,是通过判断是否有物理返回按键来处理的(测试通过机型:vivo X9、小米4、huawei P6、魅族)
直接看代码
public static boolean checkDeviceHasNavigationBar2(Context activity) {
//通过判断设备是否有返回键、菜单键(不是虚拟键,是手机屏幕外的按键)来确定是否有navigation bar
boolean hasMenuKey = ViewConfiguration.get(activity)
.hasPermanentMenuKey();
boolean hasBackKey = KeyCharacterMap
.deviceHasKey(KeyEvent.KEYCODE_BACK);
if (!hasMenuKey && !hasBackKey) {
// 做任何你需要做的,这个设备有一个导航栏
return true;
}
return false;
}