N' “adb shell de saisie de texte” simuler logiciel de saisie au clavier?
adb shell input text "sometext"
OU
adb shell input keyevent eventid
ces simuler l'entrée effective d'un virtuel/clavier matériel respectivement ?
Je n'ai pas trouvé de documentation pour ces commandes sur developer.android.com/
Est-il de confiance de la documentation pour ces commandes?
Existe-il des solutions?
OriginalL'auteur l'-'l | 2014-09-11
Vous devez vous connecter pour publier un commentaire.
adb shell input help
produit (après une longue liste de périphériques d'entrée):Il semble donc que le "texte" est en effet pour virtuel (par Défaut: l'écran tactile) et keyevent physique (par Défaut le clavier).
Vous pouvez remplacer le texte de périphérique d'entrée -
adb shell input keyboard text "foo"
fonctionne très bien. Vous ne pouvez pas envoyer des premières touches de l'écran.Android 5.0.quelque chose, je crois; j'ai mis à jour depuis, et je ne peux plus vérifier. Peu importe, me traiter de fournir à la commande "source" pour info fournie - "c'est ce que l'OS dit, je n'ai pas la sortir de mon chapeau". Je doute d'autres versions de modifier les mappages, même s'ils ne fournissent pas de construction dans la docs.
OriginalL'auteur SF.
Il y a une bonne description disponible pour
adb shell input *
commandes, il suffit de taperPour
adb shell keyevent
commandes, les différents les codes de touches sont disponibles.OriginalL'auteur Ravi Bhayani
Liées à
- Je trouver le code source:
E. g. pour Android 8.1 ici.
La méthode
private void sendText(int source, String text) {
est pertinent pour l'encodage.Et la recherche de
KeyCharacterMap.VIRTUAL_KEYBOARD
qui est utilisé dans la méthode précédente, j'ai trouvé une description ici pour la rubrique "Virtuel Personnage Clé du Fichier de la Carte".De cette info je l'ai regardé dans un vieux SM-G900F. J'ai trouvé sous
/system/usr/keychars/Virtual.kcm
.À l'intérieur de ce fichier, il cartes les événements les plus importants pour la plupart des caractères communs (la plupart du temps que de l'ASCII).
Donc à votre question:
Oui, le code prend le texte et essaie de la carte via la KeyCharacterMap.VIRTUAL_KEYBOARD des événements clés et les envoie.
Dans mon expérience, tous les caractères inconnus conduire à l'annulation de l'ensemble du texte.
Et vous avez de s'échapper certains caractères - parfois l'espace par %s, ou avec '\ ', d'autres caractères spéciaux comme & avoir échappé aussi.
Et sur certains appareils, je l'ai vécu un long texte (ca. 200 caractères) écrit avec
adb shell input text "<longText>"
a été en partie perdu - même la plus grande partie à la fin!Il me semblait, selon le fabricant.
OriginalL'auteur BitLauncher