6 votes

Désactiver l'entrée de l'écran tactile via la console

Je cherche un moyen de désactiver et d'activer l'écran tactile du téléphone via la console, et éventuellement les boutons physiques, afin d'empêcher le traitement des touches du doigt. Le téléphone est un Samsung Galaxy Frame, Android 4.1.x.

Le contexte :

Je suis en train de configurer un vieux Galaxy Fame pour qu'il serve de navigateur par satellite fixé sur le tableau de bord de ma voiture, dans le but d'utiliser la version actualisée et gratuite d'OpenStreetMap.

Lorsque je tourne la clé, l'usb du téléphone est alimenté à 5V, lorsque j'éteins la voiture, l'usb n'est pas alimenté. Le téléphone est capable de détecter ces événements et j'ai programmé quelques actions sur eux, dans le but de fournir un service de navigation instantané.

Le téléphone reste allumé en permanence et passe en mode d'économie d'énergie lorsque le véhicule est éteint. L'application de navigation - OsmAnd - démarre automatiquement au démarrage, mais le démarrage ne se produit pas entre un cycle de mise en route et d'arrêt de la voiture, car le téléphone reste allumé pour détecter les changements d'usb mentionnés.

Actuellement, ce qui se passe quand je démarre la voiture et que l'usb est alimenté :

  • L'écran est allumé (echo 200 >/sys/class/backlight/panel/brightness)
  • Le récepteur satellite est activé
  • Fréquence du processeur réglée au maximum

Que se passe-t-il quand j'éteins la voiture et que l'USB perd de sa puissance :

  • Rétroéclairage de l'écran éteint
  • Le récepteur satellite s'éteint, ainsi que le wify et le bluetooth, au cas où ils auraient été actifs.
  • Fréquence du processeur réglée au minimum

Jusqu'à présent, tout fonctionne. Mon problème est que, lorsque la voiture s'éteint et que le téléphone entre dans ce mode de quasi-veille, l'écran tactile accepte toujours les entrées et, si le téléphone est manipulé ou touché pour une raison quelconque, il réagit furtivement à ces contacts alors que l'écran est éteint.

0 votes

Quel est le modèle d'identification de ce dispositif ? c'est à dire sm-blahblah , aussi pouvez-vous poster votre init.rc à un pastebin ? Vous avez enraciné cet appareil, faites un grep sur votre ramdisk *.rc's les entrées perms/chown doivent être tsp-ish, écran tactile.

0 votes

Exécutez cat /sys/class/sec/sec_touchscreen/set_module_off s'il revient 0 alors mettez-le à 1 et voyez ce qui se passe. Comment puis-je inclure du code dans les commentaires ?

0 votes

C'est un "Samsung Galaxy Fame gt-s6810p" ; /init.rc est ici : pastebin.mozilla.org/8842877 ; l'appareil est enraciné et je peux exécuter su ; grep Les résultats semblent intéressants mais je n'ai pas encore expérimenté ces fichiers de contrôle : pastebin.mozilla.org/8842878 . Mes bricolages avec /sys/class/sec/sec_touchscreen/set_module_off sont ici : pastebin.mozilla.org/8842879

3voto

moonbutt74 Points 663

Davide,

cat votre init.rc et sous # Permissions pour InputDevices.

chown system radio /sys/class/sec/tsp/cmd
chmod 0660 /sys/class/sec/tsp/input/enabled  <--your device may differ
chown system system /sys/class/sec/tsp/input/enabled <--your device may differ

Ajouter à votre configuration de script après vérification, pour mon appareil, un samsung galaxy tab 4.

echo 0 > /sys/class/sec/tsp/input/enabled

L'écran tactile a été tué.

echo 1 > /sys/class/sec/tsp/input/enabled

L'écran tactile est réactivé.

m

0 votes

Cool à entendre ! Mon téléphone n'a cependant pas ce fichier de contrôle. Les choses les plus proches dont je peux m'approcher par grep -en dessous /sys pour les cordes enable y tsp sont : /sys/devices/virtual/sec/tsp/power/autosuspend_delay_ms - que j'ai écrasé par ignorance en 1000 en vain, et /sys/module/hid_prodikeys/parameters/enable que j'ai réécrit en N,N,N,N,N,N,N,N en essayant de désactiver les touches tactiles, en vain. Les droits d'écriture ont été définis avant chaque écriture, et aucune erreur n'a été signalée. J'ai probablement été trompé par le nom de ces fichiers de contrôle.

0 votes

J'ai également essayé de jouer avec /sys/class/sec/sec_touchscreen/set_module_off y /sys/module/hid_magicmouse/parameters/report_touches .

0 votes

L'avez-vous résolu ? Y a-t-il un moyen de le faire ?

3voto

AusGutemGrund Points 51

THX à tous, mais les solutions mentionnées n'ont pas fonctionné pour moi.

Mais j'ai trouvé une solution ici : https://Android.stackexchange.com/a/193667

rm -rf /dev/input/event0

Il "supprime" mon entrée sur l'écran tactile. Les autres événements désactivent/suppriment mes autres boutons matériels comme le volume, etc. Après le redémarrage du téléphone, ils sont de retour. Vous avez besoin de Root / su pour cela.

0voto

Scrooge McDuck Points 147

Sur Google Nexus 4 ( mako lineageos 14.1) et Xiaomi Mi5 ( gemini ) vous pouvez donner

rm /dev/input/event2

pour désactiver l'écran tactile au moment de l'exécution. Vous serez toujours en mesure de contrôler l'appareil par le biais de scrcpy .

Sur Google Nexus 5 ( hammerhead , lineageos 14.1) vous pouvez donner

rm /dev/input/event1

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