Свойства оборудования Android

Как найти свойства оборудования во время выполнения? Я хочу знать, есть ли у устройства физическая клавиатура, d-pad, трекбол и т.д.

2 ответа

Предпочитаемый способ обработки различных конфигураций оборудования, по-видимому, заключается в определить разные ресурсы и позволить Android выбрать соответствующий для аппаратного обеспечения. В документации указано:

Вы можете предоставить различные ресурсы для вашего приложения для использования в зависимости от языка пользовательского интерфейса или конфигурации оборудования на устройстве. Обратите внимание, что хотя вы можете включать различные строки, макеты и другие ресурсы, SDK не предоставляет методы, позволяющие вам указать, какой альтернативный ресурс должен загружаться. Android обнаруживает правильный набор для оборудования и местоположения и загружает их по мере необходимости.

Тем не менее, нет ничего, что помешало бы вам иметь несколько версий файлов свойств в вашем приложении и использовать их для определения жесткой конфигурации. Например, одна версия файла будет содержать dpad = true, а другая - dpad = false, а Android будет выбирать версию файла, которая соответствует аппаратным средствам, а затем вы можете прочитать свойство dpad. По общему признанию, это было бы довольно утомительно, но я не могу найти более простой способ в API для этого.


Вы можете использовать getResources().getConfiguration().

Например:

getResources().getConfiguration().navigation

Вид метода навигации доступный на устройстве. Один из: NAVIGATION_DPAD, NAVIGATION_TRACKBALL, NAVIGATION_WHEEL.

licensed under cc by-sa 3.0 with attribution.