android – 在onePlusOne设备中逐步检测软导航栏的可用性?

前端之家收集整理的这篇文章主要介绍了android – 在onePlusOne设备中逐步检测软导航栏的可用性?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我需要检查一个设备是否有软导航栏,我按照建议here.

它工作得很好,除了onePlus设备,出于某种原因,这段代码

int id = resources.getIdentifier("config_showNavigationBar","bool",android");
    return id > 0 && resources.getBoolean(id);

虽然显示了软导航栏,但返回false.

知道如何才能得到正确的结果?

我更喜欢不计算实际宽度和可用宽度,这似乎是昂贵的操作.

谢谢.

最佳答案
this答案.但是,没有办法100%肯定.

boolean hasBackKey = KeyCharacterMap.deviceHasKey(KeyEvent.KEYCODE_BACK);
boolean hasHomeKey = KeyCharacterMap.deviceHasKey(KeyEvent.KEYCODE_HOME);

if (hasBackKey && hasHomeKey) {
    // no navigation bar,unless it is enabled in the settings
} else {
    // 99% sure there's a navigation bar
}

编辑

另一种方法

public boolean hasNavBar (Resources resources) {
    int id = resources.getIdentifier("config_showNavigationBar","android");
    return id > 0 && resources.getBoolean(id);
}

猜你在找的Android相关文章