7 votes

Documentation pour le shell adb getevent / sendevent

Existe-t-il une documentation sur le format des commandes shell getevent et sendevent, en particulier celles concernant les touchevents ? ou cela dépend-il du périphérique ?

il est un peu difficile de deviner ce que font ces identifiants.

8voto

Milner Points 533

Il existe une certaine documentation sur le site de l'AOSP :

Plus plusieurs Howtos comme par ex.

Cependant, la réponse à votre question sur Google Groups États :

Non, c'est assez dépendant du périphérique. getevent imprime un résumé de tous les périphériques pour que vous sachiez ce qu'ils sont. Les données générées pour un périphérique sont généralement le protocole d'événement du noyau Linux, donc vous pouvez regarder là pour plus d'aide, mais il n'y a aucune garantie qu'un périphérique particulier suivra ces conventions.

0 votes

Toutes ne fonctionnent pas... pour des raisons de sécurité, il n'est pas possible d'injecter des événements tactiles/clavier dans une activité... à moins que l'application ne soit signée par le système :)

0 votes

Eh bien -- la question portait sur "toute documentation" -- pas sur le fait que quelque chose fonctionne :) Mais je dirais que votre recommandation devrait être ajoutée à "toute documentation", car c'est un indice utile !

0 votes

Il semble que l'url de la documentation ait changé pour devenir source.Android.com/devices/input/getevent

6voto

Nick Pierpoint Points 7976

Cela dépendra des facteurs propres au noyau en question :

  • Si elle a uinput permis alors c'est bien...
  • Les pilotes de l'écran tactile, certains s'initialisent pour résider n'importe où dans la zone de l'écran tactile. /dev/input/event X
  • Comment le noyau traite l'entrée, pour les boutons matériels.

Si cela passe les trois critères ci-dessus, alors en lisant certains événements à partir de /dev/input/event X où X est un nombre - il sera déterminé au moment du démarrage, en fonction de l'ordre de chargement des pilotes appropriés. Cela peut varier, mais vous pouvez l'essayer pour voir :

  • adb shell cat /dev/input/event X (où X est un nombre, que vous devrez connaître à l'avance !)
  • en fonction de l'événement en question, vous pouvez voir des choses amusantes se produire à l'écran en fonction de l'événement approprié. /dev/input/event X en cours d'édition.

Les valeurs sont sous forme codée, en fonction de la structure d'entrée du noyau - struct input_event qui se trouve dans la plupart des sources du noyau sous le nom de include/linux/input.h .

Faites attention ! Selon le pilote de l'écran tactile utilisé, certains ne renvoient pas les bonnes coordonnées - c'est un exercice à faire :)

Sur le Samsung GT-i5500 fonctionnant sous Eclair, /dev/input/event2 est l'écran tactile et les valeurs sont sous forme codée, mais cela ne va pas de soi car cela dépend du pilote d'écran tactile utilisé. Sur le Sony ST15i, fonctionnant sous ICS, c'est, étonnamment, la même chose ! Mais sur le Zte Blade, c'est /dev/input/event1 .

Par ailleurs, j'ai travaillé il y a environ un an à la création d'un écran tactile pour ClockWorkMod Recovery, que l'on peut trouver sur le site suivant Modaco .

La partie la plus douloureuse a été d'essayer de déterminer quel événement était l'écran tactile et d'agir en conséquence, ce qui a été porté sur Zte Skate, Zte Racer et Samsung GT-i5500.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X