Android: чтение событий геймпада (gamecontroller) из приложения, которое не отображается - PullRequest
0 голосов
/ 13 мая 2019

Чтение событий геймпада USB (нажатие кнопки и т. Д.) Из рассматриваемого приложения (фокус) может не быть проблемой для Android.Проблема в том, что мне нужны эти события из постоянного приложения / службы / и т. Д.который не нужен в представлении (например, служба переднего плана).Например, когда я нажимаю определенную кнопку на геймпаде, всегда должно запускаться предопределенное приложение, независимо от рассматриваемого приложения. То есть приложение или процесс, которые должны получать и обрабатывать события геймпада.должно быть постоянным, особенно оно никогда не может быть убито, и оно должно продолжать обрабатывать события, даже если теряет фокус.

Как я понимаю, нет ни простых, ни изящных способов сделать это с помощью физическогоклавиатура, так как я должен использовать службу специальных возможностей (не подлежит сомнению) или написать свой собственный метод ввода (сложный, а также имеет свои недостатки).Может быть, есть лучший обходной путь для геймпада?Обратите внимание, что устройство, о котором мы говорим, на самом деле представляет собой универсальную «кнопочную панель» USB на основе Trinket, которую можно легко запрограммировать так, чтобы она действовала как любое устройство HID, такое как геймпад, клавиатура, мышь и т. Д. Даже в этом случае предпочитайте геймпад, а не клавиатуру, чтобы избежатьвмешательство в программную клавиатуру системы (но также было бы приятно, если бы я нашел решение для клавиатур).

Решение Delphi Firemonkey было бы лучшим, но, конечно, я готов использовать C ++, Python, Java,и т. д. вместо этого при необходимости.Он должен работать на Android 7.1 или выше (по крайней мере, Oreo является обязательным).

ОБНОВЛЕНИЕ Для большей ясности позвольте мне показать, что я на самом деле хочу сделать.Устройство Android по сути является головным устройством автомобиля, работающим только на ощупь.Я сделал активную рамку с кнопками, которые могут действовать как геймпад или физическая клавиатура и имеют цель запустить (или переключиться на) медиаплеер, навигацию, телефон, радио и т. Д. На головном устройстве (поскольку устройство, работающее только на ощупь, может отвлекать внимание).следовательно, водитель не очень безопасен во время вождения).Конечно, все кнопки должны работать каждый раз, независимо от того, какое приложение отображается в данный момент.

...