Как проверить, есть ли в телефоне аппаратная кнопка меню в Android 2.1?

Я пытаюсь выяснить, есть ли на телефоне Android аппаратная кнопка меню, я искал и нашел этот метод:

ViewConfiguration.get(getApplicationContext()).hasPermanentMenuKey();

Но, похоже, это не работает в Android 2.1, и я пытаюсь создать приложение, которое работает на Android 2.1 и выше. Можно ли определить, есть ли на телефоне аппаратная кнопка с версией Android менее 3.0?

3 ответа

Решение

Каждое совместимое устройство Android 2.1 имело клавишу меню, поскольку оно было частью CDD:

http://source.android.com/compatibility/2.1/android-2.1-cdd.pdf

Смотрите раздел 8.7:

"Функции" Домой "," Меню "и" Назад "имеют важное значение для парадигмы навигации Android. Реализации устройств ДОЛЖНЫ делать эти функции доступными для пользователя всегда, независимо от состояния приложения".

Поэтому, если устройство работает под управлением Android 2.1, можно предположить, что оно имеет клавишу меню. Если он работает в более поздней версии, вы можете использовать API, который вы нашли.

hasPermanentMenuKey() был введен начиная с уровня API 14, потому что в Android 3.0 устройствам было запрещено иметь клавишу меню. поэтому я предполагаю, что вы можете смело предположить, что на устройстве 2.1 будет иметься кнопка меню. Проверьте андроид документацию по этому вопросу. Конфигурация представления Android имеет PermanantMenuKey

hasPermanentMenuKey() стал доступен на уровне API 14 (3.0). Я полагаю, можно с уверенностью предположить, что есть ключ на устройствах под управлением ниже 3.0. Выше 3.0 вы можете вызвать этот метод, чтобы определить, нужно ли предоставлять альтернативный метод.

Другие вопросы по тегам