Android телефон как компьютерная мышь - PullRequest
6 голосов
/ 04 октября 2010

Я создал приложение Android, которое передает данные датчика сенсорного экрана Java-клиенту, который прослушивает компьютер Debian Lenny.

Клиент сопоставляет эти данные с местами на экране, как это делает Wacom Pad. Я хотел бы поместить x_loc и y_loc в файл и распознать файл как устройство (я сомневаюсь, что так оно и должно работать)

У меня есть опыт работы с Linux, но мне раньше не приходилось создавать устройства. Как мне сказать Linux, что этот файл - мышь. Нужно ли создавать драйвер?

Ответы [ 2 ]

1 голос
/ 04 октября 2010

Есть много способов сделать это, от написания фактического драйвера устройства до написания X-клиентов для генерации X-событий (например, с использованием расширения XTest), до использования интерфейсов ядра для ввода событий подсистемы ввода.

Я бы пошел с последним и использовал подсистему uinput. Это часть практически всех последних ядер и предоставляет /dev/uinput, который вы можете регулярно открывать и выполнять различные действия ioctl для создания устройств ввода из обычного пространства пользователя.

Обратите также внимание, что некоторые механизмы для этого уже существуют. Устройства Bluetooth Human Interface, которые прекрасно работают в Linux, являются одним из примеров. rinputd , демон для прослушивания клиентов rinput и генерации событий uinput на основе отправляемых данных. Другой. Возможно, вы захотите сделать приложение Android активным клиентом rinput.

0 голосов
/ 04 октября 2010

Вы можете написать драйвер устройства Linux, чтобы интерпретировать ваши данные как подлинную мышь, или вы можете убедить X-сервер (или что-то еще) принять входные данные от чего-то другого, например, именованного канала.

Фактические файлы устройства - это не файлы с каким-либо содержимым - это просто ссылки на старший и младший номер, используемые для связи с драйвером в ядре, который может выполнять неопределенные файловые параметры на некоторых устройствах. Вы создаете файлы устройств с помощью mknod, но они не будут работать, пока не будут поддержаны драйвером ядра с соответствующими номерами. Поверьте, теперь есть некоторые механизмы-заглушки, чтобы основная часть драйвера могла работать в пользовательском пространстве.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...