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