Подтвердить что ты не робот

Android: программно определить, есть ли у устройства аппаратное меню

В настоящее время я борюсь с этой проблемой. Мне нужно проверить, есть ли на устройстве, где установлено приложение, ключ аппаратного меню. Поскольку он не существует на некоторых устройствах, таких как Galaxy Nexus, я показываю его непосредственно в пользовательском интерфейсе в этом случае.

Я уже посмотрел PackageManager.hasSystemFeature(), но не нашел там ничего полезного.

Кто-нибудь уже это сделал?

4b9b3361

Ответ 1

ViewConfiguration.get(context).hasPermanentMenuKey()

Подробнее см. ViewConfiguration#hasPermanentMenuKey(). Обратите внимание, что это доступно только для уровня API 14+ (Android 4.0 Ice Cream Sandwich или новее).

Ответ 2

if(Build.VERSION.SDK_INT <= 10 || (Build.VERSION.SDK_INT >= 14 &&    
                              ViewConfiguration.get(this).hasPermanentMenuKey()))
{
   // menu key is present
}
else
{
  //No menu key
}

Ответ 3

Даже на устройствах, на которых работает Honeycomb, а затем система будет поставлять "кнопку меню" для приложений, написанных для версий 2.x Android. Только его называют "меню переполнения". Так что не стоит проверять, будет ли такая кнопка или нет - она ​​будет там, если это необходимо.

В качестве общего руководства вы должны проверить определенную функциональность, а не смотреть номера версий системы /API. Используйте класс ActionBar, если он доступен, в противном случае - в меню опций 2.x.

Посмотрели ли вы на учебник по учебным курсам Googles? Это делает более ясным, что вы должны делать.

Ответ 4

Я думаю, что возможным и лучшим решением является добавление собственной панели действий. Поэтому каждое устройство может его увидеть, и вам не нужно проверять конфигурацию оборудования или версию Api.

Ответ 5

keysoft qualifier используется для обнаружения аппаратной клавиатуры, а не панели навигации.

В этой статье решается:

Проверить панель навигации

Ответ 6

Если вам нужен квалификатор ресурса, который может иметь место, так как вы хотите различать пользовательские интерфейсы, используйте keyssoft классификатор ресурсов.