Конфигурация и запрос устройств ввода

Иногда необходимо знать какие устройства ввода поддерживаются. Кроме того, часто бывает, что libGDX игра или приложение не нуждается в полном диапазоне поддерживаемых устройств ввода, например вам не нужен акселерометр и компас. Хорошей практикой является отключение неиспользуемых устройств ввода, на Android в этом случае сохраняется заряд аккумулятора. В следующих разделах мы покажем вам как это сделать.

Отключение акселерометра и компаса

В данный момент настройка устройств ввода имеет смысл только для Android платформы.

Класс AndroidApplicationConfiguration имеет несколько публичных полей, которые можно установить прежде передачи в AndroidApplication.initialize() метод.

Предположим, что игра не нуждается в акселерометре и компасе, тогда можно отключить эти устройства ввода следующим образом:

public class MyGameActivity extends AndroidApplication {
    @Override
    public void onCreate (Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();
        config.useAccelerometer = false;
        config.useCompass = false;
        initialize(new MyGame(), config);
    }
}

По умолчанию акселерометр и компас включены. Приведенный выше код отключает их и таким образом сохраняет драгоценный заряд аккумулятора.

Запрос доступных устройств ввода

Чтобы проверить наличие конкретного устройства на платформе для работающего в настоящий момент libGDX приложения, вы можете воспользоваться Input.isPeripheralAvailable() методом.

boolean hardwareKeyboard = Gdx.input.isPeripheralAvailable(Peripheral.HardwareKeyboard);
boolean multiTouch = Gdx.input.isPeripheralAvailable(Peripheral. MultitouchScreen);

Чтобы увидеть остальные доступные в libGDX константы, смотрите Peripheral перечисление.

Отметим, что всего в нескольких Android устройствах имеется аппаратная клавиатура. Даже если клавиатура физически присутствует, пользователь может ее не выдвинуть. В этом случае вышеописанный метод вернет false.