Постараюсь максимально четко описать свою проблему. Я пытаюсь заставить устройство с сенсорным экраном работать с Android. устройство является USB-устройством, и у меня оно корректно работает в различных ОС (Windows, Mac OS X, Ubuntu). В Android 4.0.4 у меня проблема. Есть некоторая реакция на прикосновения, но это неверно. тачскрин проявляет себя как тачпад, а не как абсолютный тачскрин, к тому же прикосновения происходят некорректно.
Я изучал различные дескрипторы HID и обнаружил следующее, что может вызывать проблемы с Android:
Interface 0 HID Report Descriptor Mouse Item Tag (Value) Raw Data Usage Page (Generic Desktop) 05 01 Usage (Mouse) 09 02 Collection (Application) A1 01 Usage (Pointer) 09 01 Collection (Physical) A1 00 Usage Page (Digitizer) 05 0D Usage (Touch) 09 33 Usage Minimum (Digitizer) 19 01 Usage Maximum (Digitizer) 29 01 Logical Minimum (0) 15 00 Logical Maximum (1) 25 01 Report Count (1) 95 01 Report Size (1) 75 01 Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit) 81 02 Report Count (1) 95 01 Report Size (7) 75 07 Input (Cnst,Ary,Abs) 81 01 Usage Page (Generic Desktop) 05 01 Usage (X) 09 30 Usage (Y) 09 31 Logical Minimum (0) 15 00 Logical Maximum (1024) 26 00 04 Physical Minimum (16) 35 10 Physical Maximum (1024) 46 00 04 Unit (None) 65 00 Report Size (16) 75 10 Report Count (2) 95 02 Input (Data,Var,Abs,NWrp,Lin,NPrf,Null,Bit) 81 62 End Collection C0 End Collection
Теперь похоже, что устройство сообщает и как дигитайзер, и как сенсорное устройство? Устройство представляет собой устройство с одним касанием «наведи и нажми» и сообщает абсолютные координаты X и Y.
Мне интересно, не запутается ли Android, читая этот отчет, и поэтому загружает конфигурацию дигитайзера / планшета, а не сенсорного экрана? Здесь есть несколько указателей http://source.android.com/tech/input/touch-devices.html, но я действительно не понимаю, где эти вещи сообщаются / определяются?
Любая помощь будет принята с благодарностью. При необходимости я могу отправить дополнительную информацию из отчетов HID.