11 votes

Est-il possible de simuler le toucher sans Root ?

Existe-t-il un moyen de simuler un toucher (n'importe où) sur l'écran sans Root ?

Si ce n'est pas le cas, y a-t-il un autre moyen d'effectuer une carton l'action "select" sans le soutien d'un aimant, ou l'ouverture de mes carton à chaque fois ?

Contexte

J'essaie d'obtenir carton des applications à travailler pour fonctionner avec un téléphone 5.1 qui ne supporte pas le "bouton" aimanté.

La plupart des applications semblent utiliser le bouton pour sélectionner ou avancer, donc s'il ne fonctionne pas, il est difficile à utiliser. J'ai découvert qu'un toucher n'importe où sur l'écran fonctionne également comme une sélection, donc ce que je fais en ce moment est d'ouvrir le dos, de toucher l'écran puis de le refermer, mais évidemment cela devient rapidement fastidieux.

Ce que j'ai essayé :

0 votes

Envoi de événements tactiles nécessite des autorisations Root/système, donc comme tout autre carton, vous devez avoir un aimant réel pour que l'écran le détecte comme une entrée. L'utilisation d'une souris (Bluetooth ou USB) peut être intéressante.

0 votes

Vous pouvez utiliser un câble OTG et une souris, à condition que la fonction OTG soit prise en charge par votre appareil.

0 votes

Alors dites-moi les gars, comment Teamviewer fait ça ? Il existe une version de Teamviewer qui permet de contrôler un appareil Android à distance comme on le fait avec un PC. Alors comment la télévision simule les événements ?

11voto

Vous pouvez potentiellement simuler une touche avec la commande input tap x y (par exemple, à partir d'un émulateur de terminal, ou éventuellement avec Tasker (je ne me souviens pas s'il peut faire des commandes shell, mais je suppose que oui)), ou par ADB avec adb shell input tap x y . Voir https://stackoverflow.com/a/20830258/2141741 (et si vous voulez connecter l'appareil à lui-même via ADB, https://code.google.com/p/Android/issues/detail?id=48126 et les commentaires associés sont informatifs).

Cette solution ne nécessite pas de Root (du moins pas depuis un ordinateur connecté via ADB).

0 votes

C'est la méthode la plus simple que j'ai trouvée. Mettre la commande dans une boucle en attendant une pression sur une touche fait très bien l'affaire : $ while true; do read; adb shell input tap 0 0; echo pressed; done . Mais il y a beaucoup de décalage.

2voto

Zack Points 121

J'ai essayé le ce que @user43185 a proposé mais ça ne marchera pas. Mais, comme alternative, je vois qu'il est possible d'utiliser ce qui suit.

input [text|keyevent]
input text <string>
input keyevent <event_code>
input motionevent <x> <y> <down|move|up>
input motionevent-batch <pointer-log>

Par exemple, si je veux un événement de tapotement, alors je le fais :

adb shell input motionevent x y down
adb shell input motionevent x y up

Où x et y sont les coordonnées sur le dispositif.


UPDATE.

La raison pour laquelle l'autre réponse ne fonctionne pas, selon cette réponse est due à la version d'Android de l'appareil.

1 votes

Je suppose que cela dépend de la version ADB. En plus de cela, je vois tap , swipe , press et roll sur ADB version 1.0.36.

0 votes

J'ai fait une recherche, apparemment c'est à cause de la version d'Android qui est sur l'appareil.

2voto

Je l'ai fait sur Android 6.0 avec l'application Automatiser . Vous pouvez télécharger le logiciel Automate Flow aquí . Chaque fois que vous cliquez sur le bouton du casque, il exécute la commande shell "input tap 200 200".

0 votes

Cela ne fonctionnait que dans l'application automate pour moi (Android 9) mais automate a une action "interact touch click" maintenant, qui fonctionne globalement. et ensuite j'ai du changer le trigger en "key pressed headset hook" parce que l'autre ne fonctionnait que lorsque l'application n'avait pas d'audio en cours...

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