Иногда необходимо знать какие устройства ввода поддерживаются. Кроме того, часто бывает, что 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.