Как получить точные координаты из /dev/input/event0Android

Форум для тех, кто программирует под Android
Ответить
Гость
 Как получить точные координаты из /dev/input/event0

Сообщение Гость »


Я работаю над обработкой события ввода с помощью своей собственной программы на Android без Eventthub&InputReader, и код работал на экране с одним касанием, но не может работать на экране с несколькими касаниями, ниже приведены мои коды (частично):
р>
int readSize = read(mInputTouchfd, mEventData, EVS_READ_EVENT_MAX_NUM * sizeof(struct input_event)); если (readSize >= (int)sizeof(struct input_event)) { int eventNum = readSize/sizeof(struct input_event); LOG1("HandleTouchEvent прочитал событие ввода %d", eventNum); for (int я = 0; я dispatchTouchEvent(buttonEvent, Realx, Realy); } // сбрасываем тип события после завершения дескриптора buttonEvent = TOUCH_EVENT_MOVE; } } } Я обнаружил, что код, тип и значение события на мультисенсорном экране различаются. Чтобы перехватить такие события, я использовал команду getevent:

/dev/input/event0: EV_KEY BTN_TOUCH UP /dev/input/event0: EV_MSC MSC_TIMESTAMP 00032c80 /dev/input/event0: EV_SYN SYN_REPORT 00000000 /dev/input/event0: EV_ABS ABS_MT_TRACKING_ID 0000004d /dev/input/event0: EV_ABS ABS_MT_POSITION_X 00003dad /dev/input/event0: EV_ABS ABS_MT_POSITION_Y 000012bc /dev/input/event0: EV_KEY BTN_TOUCH DOWN /dev/input/event0: EV_ABS ABS_X 00003dad /dev/input/event0: EV_ABS ABS_Y 000012bc /dev/input/event0: EV_MSC MSC_TIMESTAMP 00034bc0 /dev/input/event0: EV_SYN SYN_REPORT 00000000 /dev/input/event0: EV_MSC MSC_TIMESTAMP 00036b00 когда code=EV_ABS,type=ABS_MT_POSITION_X, значение равно 00003dad (шестнадцатеричное), равное 15789 (декабрь), что намного больше, чем 1920 (мой сенсорный экран 10 дюймов, 16:9 и 1080p), I я в замешательстве, как мне получить точные координаты (включая x и y)? Я думаю, что единицей измерения является пиксель, хотя кажется, что нет, кто-нибудь может мне помочь?

Я искал в ChatGPT/Google бард, но получил неправильные ответы.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»