Сенсорный экран Android IDC

Я борюсь с калибровкой сенсорного экрана на платформе Android.

Это USB-сенсорный экран с одним касанием от поставщика 0dfc и продукта 0001, что проверено с помощью dmesg:

<6>[ 4118.091541] input: USB Touchscreen 0dfc:0001 as /devices/platform/usb20_host/usb2/2-1/2-1.3/2-1.3:1.0/input/input23

Я отправляю Vendor_0dfc_Product_0001.idc файл /data/system/devices/idc/ (следуя документации из источник Android – IDC

Я получил сенсорное устройство со всеми требованиями для событий одиночного касания:

root@android:/ # getevent -il /dev/input/event3                                
add device 1: /dev/input/event3
  bus:      0003
  vendor    0dfc
  product   0001
  version   0202
  name:     "USB Touchscreen 0dfc:0001"
  location: "usb-usb20_host-1.3/input0"
  id:       ""
  version:  1.0.1
  events:
    KEY (0001): BTN_TOUCH            
    ABS (0003): ABS_X                 : value 540, min 0, max 32767, fuzz 0, flat 0, resolution 0
                ABS_Y                 : value 289, min 0, max 32767, fuzz 0, flat 0, resolution 0
  input props:
    <none>

Я также включил опцию Pointer Location из Developer options (настройки Android), чтобы отладить этот этап калибровки.

Настройка 1

touch.deviceType = touchScreen

При такой настройке (1) все жесты на сенсорном экране выполняются в левом верхнем углу — всего несколько пикселей влево/вправо/вверх/вниз независимо от жеста. (проведите пальцем). Все сенсорные экраны получают события. Все жесты меняются местами - при свайпе влево указатель перемещается вправо; при свайпе вверх указатель опускается.

Настройка 2

touch.deviceType = pointer
touch.gestureMode = pointer

С этой настройкой (2), как и ожидалось, отображается указатель, расположенный в позиции от последнего левого указательного устройства (мыши). Все жесты на сенсорном экране (независимо от размера пролистывания) продолжают выполняться так же, как и при настройке 1 — перемещение всего на несколько пикселей при каждом пролистывании и с перевернутой осью.

Настройка 3

touch.deviceType = pointer
touch.gestureMode = spots

С этой настройкой (3) результат будет таким же, как и с настройкой 2. Я просто сделал это, чтобы доказать, что файл IDC интерпретируется правильно.

На данном этапе, как вы уже можете убедиться, у меня есть рабочий файл IDC (настройка 1), требующий калибровки для этого сенсорного устройства.

Я испробовал множество комбинаций из других файлов IDC (образцы из Интернета) и из источник Android – IDC – ЛЮБОЕ ДРУГОЕ ПРАВИЛО ПРИМЕНИЛОСЬ В СИЛУ (НЕ ОДИН ОДИН) – raw.*, output.*, touch.size.*

Кто-нибудь знает, как правильно откалибровать сенсорный экран в Android, который мог бы помочь мне в этом процессе?

Спасибо


person Jorge    schedule 24.09.2014    source источник
comment
Вы решили свою проблему?   -  person Dr.jacky    schedule 03.10.2015
comment
Вы пытались сделать touch.orientationAware = 1 для файла idc?   -  person Joshua Robison    schedule 01.09.2017


Ответы (1)


То же самое,

но мое приложение для калибровки ничего не сделало.

Через некоторое время, читая /system/etc/init.sh, я обнаружил следующее: " mkdir -p /data/misc/tscal touch /data/misc/tscal/pointercal chown 1000.1000 /data/misc/tscal /data/misc/ tscal/* chmod 775 /data/misc/tscal chmod 664 /data/misc/tscal/pointercal "

Просто запустите эти команды вручную, перезагрузитесь и запустите приложение калибровки.

person user3454585    schedule 16.10.2015