Я хочу знать, есть ли на устройстве программная панель навигации. Я использую для этой цели следующий код:
val hasNavBar = resources.getIdentifier("config_showNavigationBar", "bool", "android")
if(hasNavBar > 0 && resources.getBoolean(hasNavBar)){
val resourceId = resources.getIdentifier("navigation_bar_height", "dimen", "android")
if (resourceId > 0) {
ApiHelper.navHeight = resources.getDimensionPixelSize(resourceId)
}
}
Но на некоторых устройствах, у которых нет программной панели навигации, resources.getDimensionPixelSize(resourceId)
дает некоторую высоту, а hasNavBar
соответствует действительности.
Устройство с этой проблемой — Redmi Note 4 Pro. Я не знаю, есть ли такая же проблема на других устройствах.