Геймпад oklick gp 315m драйвер windows 10
Данная тема является продолжением статьи //4pda.ru/2014/12/12/190359/
Здесь обсуждаем способ создания нативной поддержки для устройств ввода и делимся готовыми решениями.
1. Создание файла с VID и PID
Подключаем наше устройство ввода и запускаем приложение USB Device Info. Нас интересует вкладка Linux, в которой выбираем своё устройство (у меня оно было последним в списке) и ищем значения строчек Vendor ID и Product ID. В моём случае это были 0c45 и 7700 соответственно.
Так же VID и PID можно посмотреть подключив устройство к ПК.
Для Bluetooth устройств:
Узнать эти значения для Bluetooth девайсов можно открыв файл /proc/bus/input/devices.
Копируем любой файл из /system/usr/keylayout на sdcard и переименовываем его в соответствии с полученными данными, для моего джойстика название получилось таким: Vendor_0c45_Product_7700.kl. (Обратите внимание, что регистр букв имеет значение)
2. Получение кодов кнопок
Запускаем приложение KeyTest и, вооружившись бумагой и карандашом, начинаем поочерёдно нажимать кнопки на устройстве, записывая цифры, высвечивающиеся после scanCode=. Я записывал коды, располагая их на бумаге, как кнопки на геймпаде.
Из программы можно выйти только по кнопке «Домой».
ВНИМАНИЕ!
Если Геймпад видно в первом шаге, но кейтест не реагирует на нажатия, возможно, у вас отсутствует нужный модуль в ядре — скажите «спасибо» автору прошивки.
Но не отчаивайтесь, есть возможное решение Нативная поддержка для устройств ввода (Пост wm-hater #52134473)
3. Маппинг кнопок
Теперь, когда стали известны коды всех клавиш, необходимо прописать их функции. Тут есть два пути:
а) найти среди имеющихся в Android конфигов устройство, максимально приближенное к вашему, и просто изменить в нём коды кнопок, скопировав содержимое в свой файл;
б) прописать все самому.
Я пошёл по второму пути, ибо мой джойстик имеет только крестовину управления и четыре кнопки. Для начала нужно понять синтаксис файла раскладки, он очень прост:
key код_кнопки действие_кнопки
Но тут возник вопрос: а какие действия кнопок писать в конфиге? За много лет использования различных геймпадов на Android я для себя определил, что самый универсальный конфиг — это раскладка от Sony Xperia Play, она одинаково хорошо ведёт себя как в играх, так и в интерфейсе системы.
Ok Google, key mapping for Xperia Play
Нас интересует третья колонка, но запись действий в ней немного отличается от тех, что были найдены в системе — это не помеха, просто убираем KEYCODE_.
Прописываю свои кнопки (помните листок с карандашными записями? Самое время найти его. ):
. ВНИМАНИЕ .
Нужен текстовый редактор с поддержкой unix кодировки!
Блокнот из состава Windows НЕ подойдет ,
Используйте, к примеру, Notepad++
4. Момент истины
Сохраняем наш файл и копируем его в папку /system/usr/keylayout. Выставляем права -rw -r -r (644). Перезагружаем устройство (сам я этого не делал, просто заблокировал и разблокировал, но для чистоты совести и эксперимента обязан был это написать).
Подключаем наше устройство, и если всё сделали правильно, тут же сможете «крестовиной» перемещаться по меню Android. Кнопка, на которую назначили DPAD_CENTER, будет кнопкой выбора, а BUTTON_B — кнопкой «назад».
Q: Все прописываю верно, но конфиг не цепляется.
А: Если вы пропишете коды действий с ошибкой, например:
key 123 BUTTON_HOME вместо key 123 HOME
то система будет считать этот файл ошибочным.
Самый лучший способ проверить подхватывается ваш kl файл системой или нет — стереть все кейкоды или закомментировать их знаком #:
# key 123 BUTTON_HOME
Если файл подхватился — никакой реакции на кнопки не будет, но в KeyTest все будет отображаться.
Q: Все прописываю верно и без ошибок но все или часть кнопок не работают.
А: Попробуйте прописать scancode в hex формате: Нативная поддержка для устройств ввода (Пост romanctest #69194647)
Q: Дуалшок 4 постоянно отваливается или работает с задержкой.
А: Нативная поддержка для устройств ввода (Пост maxmergov #81264882)