Теперь, прежде чем кто-либо пометит вопрос как дубликат, внимательно прочитайте вопрос. Я перепробовал каждый текущий ответ по переполнению стека.
В общем, я хочу знать, как определить, существует ли какая-либо мягкая панель навигации в нижней части экрана на устройстве пользователя.
Теперь,
1) Я видел ответ, где люди проверяют максимальный размер экрана, видят, какое приложение / действие отображается, а затем, в зависимости от результата, решают, есть ли мягкая навигационная панель. , Это не будет надежно для устройств с надрезом.
2) Мне не интересно знать, есть ли аппаратная панель навигации или нет. Soft Nav Bar является обязательным, потому что:
a. В моем настоящем устройстве нет аппаратных навигационных панелей и программной навигационной панели. Несколько телефонов в настоящее время используют жесты для навигации.
b. Но в моем эмуляторе есть навигационная панель. Есть мягкие навигационные панели.
Чтобы скрыть их, я использую этот код:
int uiOptionsForDevicesWithoutNavBar = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
decorView.setSystemUiVisibility(uiOptionsForDevicesWithoutNavBar);
Теперь это работает как шарм. Waalaa, Nav Бары скрыты. Но тут возникает проблема с моим реальным телефоном. Он использует жесты. При моем первом пролистывании «Назад» появляется панель уведомлений, а затем при следующем немедленном пролистывании «Назад» происходит необходимое обратное действие.
Но если я сделаю это:
int uiOptionsForDevicesWithoutNavBar = View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
decorView.setSystemUiVisibility(uiOptionsForDevicesWithoutNavBar);
Тогда он корректно работает на моем физическом устройстве, но панель навигации не скрывается в эмуляторе, что очевидно, потому что основной флаг, скрывающий его, отсутствует.
Поэтому я хочу запустить разные флаги для разных типы телефонов в зависимости от того, есть ли на устройстве программные навигационные панели или нет.
Поэтому я хотел бы знать, как определить, есть ли на экране программные навигационные панели или нет.
Также, если есть лучший способ сделать это, пожалуйста, помогите мне.