Вопрос или проблема
Геймпад — это мой основной способ ввода при игре на устройствах Android, и одной из вещей, которая мне нравилась, была тактильная отдача (вибрация) контроллера. До выхода Galaxy S23 Ultra (GS23U) в 2023 году я пользовался его предшественником, Galaxy S22 Ultra (GS22U). Спустя месяц после его выхода я купил GS23U, чтобы понять, стоит ли обновляться. Когда я начал играть в Fortnite (поддерживает вибрацию), я быстро заметил, что вибрации не было. После часов поиска в Google и устранения неисправностей я пришел к выводу, что это может быть особенностью телефона. Это не имело большого значения, так как я все равно вернул GS23U по причинам, не связанным с вибрацией контроллера. Прошло время, и я прошел через тот же процесс, на этот раз с Galaxy Tab S8+ (GTS8+) и Galaxy Tab S9+ (GTS9+). Вибрация была на предыдущем поколении, но отсутствовала на текущем. Достаточно ясно, что устройства Galaxy 2023 года не поддерживали вибрацию на контроллерах Xinput (я все равно оставил GTS9+ из-за рейтинга IP68). Итак, сейчас…
Я позволю таблице рассказать остальное. Я протестировал 3 контроллера. 2 Xinput, 1 не Xinput.
- Одинаковая версия Android на всех устройствах. (Android 14, OneUI 6.1.1)
- Единственное значительное изменение в оборудовании между поколениями — это чипсет: Snapdragon 8 Gen 1, 2 и 3 соответственно.
- Все подключены через USB
Достаточно ясно, что что-то изменилось в отношении Xinput с 2023 года и далее, и вместо решения (хотя оно было бы неплохо) мне просто интересно, что происходит. Моя первая догадка — это драйверы, но я не совсем уверен, как это работает на Android.
.
Ответ или решение
Изучение изменения поведения Xinput/Xbox контроллеров на устройствах Android, таких как Samsung Galaxy, в частности, связано с разнообразными изменениями, появившимися в новом поколении устройств. Проблема представляется весьма интересной, так как она может быть связана с множеством технических аспектов, включая программные изменения, аппаратные обновления и поддерживаемые драйверы. Давайте рассмотрим эту ситуацию более подробно, разобрав теоретическую часть, приведя практические примеры и предложив возможные пути решения.
### Теоретическая часть
Сначала необходимо понять, как происходит взаимодействие игровых контроллеров с Android-устройствами. Основной способ управления и взаимодействия осуществляется через API Xinput, который изначально был разработан для работы с Xbox-контроллерами на платформе Windows, но позже получил поддержку и на других операционных системах, таких как Android. Xinput предоставляет стандартный интерфейс общения с устройствами, реализующий такие функции, как считывание положения стиков, нажатий кнопок, а также предоставление обратной связи в виде вибрации (rumble или haptic feedback).
Поддержка Xinput на Android зачастую осуществляется на уровне драйверов, которые обеспечивают корректное взаимодействие операционной системы с устройством через определённые протоколы. Драйверы в свою очередь могут зависеть от аппаратной начинки смартфона или планшета, что подводит нас к следующему пункту.
### Примеры
Вы описали, что используете несколько устройств Samsung Galaxy: GS22U, GS23U, GTS8+, и GTS9+, с контроллерами, которые включают два Xinput и один Non-Xinput. Работоспособность вибрации наблюдается на старых моделях с чипами Snapdragon 8 Gen 1 и 2, но не на новых с Snapdragon 8 Gen 3. Это может свидетельствовать об изменениях в новых чипсетах, которые влияют на взаимодействие между устройством и контроллерами через Xinput, возможно из-за обновлений в Android версии.
Вы привели отличный пример, протестировав устройства на одинаковой версии Android 14 с OneUI 6.1.1, что предполагает, что различия в программной части на уровне ОС отсутствуют, если речь не идёт об удешевлении некоторых функций в драйверах для новых моделей устройств. Изменения в поддержке Xinput, возможно, произошли из-за обновлённого подхода к драйверам в новых чипсетах.
### Применение
В контексте вашим вопроса, можно предположить несколько возможных источников проблемы. Во-первых, изменения могут быть связаны с драйверами, установленными для чипсетов Snapdragon 8 Gen 3. Возможно, новые драйверы, которые поставляются с Android и OneUI, не содержат необходимой поддержки для Xinput обратной связи. Это также может быть связано с изменениями в политике управления питанием микроконтроллеров, которые встроены во вновь введённые чипы, где приоритет может быть отдан эффективности и снижению нагрузки на систему.
Для исследования текущей ситуации можно предложить несколько шагов. Прежде всего, стоит обратиться в службу технической поддержки Samsung или Qualcomm для уточнения особенностей поддержки вибрации на новых устройствах. Это может пролить свет на потенциальные ограничение со стороны чипсета или текущей реализации драйверов.
Другой путь — мониторинг обновлений прошивки, как со стороны Samsung, так и со стороны Android. Возможна реализация исправлений в будущих обновлениях, которая возобновит совместимость Xinput-контроллеров. Некоторые модели устройств также могут иметь сообщества энтузиастов, занимающихся кастомными прошивками и модификациями драйверов, что может помочь временно устранить трудности через неофициальные патчи.
### Заключение
Подытоживая, отсутствующая функция вибрации на Xinput-контроллерах на новых устройствах Samsung может быть вызвана изменениями в аппаратной или программной поддержке. Понимание проблемы требует анализа изменений в драйверах на уровне чипсета и операционной системы. Дальнейшие шаги могут включать уточнение деталей у производителей, а также ожидание обновлений, которые могут статически исправить эти проблемы. Обследуйте различные форумы и техносообщества, чтобы быть в курсе потенциальных решений, которые могут дать энтузиасты.