Как обнаружить виртуальные кнопки (Android 4)? - PullRequest
2 голосов
/ 09 марта 2012

Я хотел бы определить, использует ли телефон, на котором работает мое приложение Android, аппаратные или виртуальные кнопки (Galaxy Nexus).

Есть ли способ получить эту информацию?

1 Ответ

3 голосов
/ 23 ноября 2012

Начиная с уровня API 14, вы можете использовать ViewConfiguration.hasPermanentMenuKey () для определения наличия у устройства постоянной клавиши меню.

Как правило, виртуальные и физические кнопки являются взаимоисключающими, поэтомупомог бы тебе.Пример:

public class MyActivity extends Activity {

    // ...
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        boolean hasPermanentMenuKey = ViewConfiguration.get(this).hasPermanentMenuKey();
        boolean hasVirtualKeys = !hasPermanentMenuKey;
        String message = hasVirtualKeys ? "This device has virtual menu keys" : "This device has physical keys";
        Toast.makeText(this, message, Toast.LENGTH_LONG).show();
    }
    // ...

}

ПРЕДУПРЕЖДЕНИЕ : в некоторых случаях это не поможет.Например, скажем, производитель решает использовать виртуальные клавиши вместе с физическими клавишами меню;тогда этот метод не поможет вам.В другом случае телефон не имеет виртуальных клавиш и физической клавиши меню (например, Samsung S5).

...