6 votes

Comment ouvrir un fichier texte à partir d'une fenêtre de terminal depuis l'interface graphique Android ?

J'essaie d'ouvrir un fichier texte à partir d'un émulateur de fenêtre de terminal - mais pas de façon à ce qu'il s'ouvre dans le terminal réel, plutôt comme si je venais de cliquer dessus.

Donc ma question est : Quelle commande puis-je utiliser pour ouvrir /mnt/sdcard/textfile.txt à partir d'un émulateur de fenêtre de terminal à partir de ROM Toolbox Lite dans l'interface graphique Android afin qu'il s'ouvre avec n'importe laquelle de mes applications d'édition de texte ? Devrai-je exécuter su avant de pouvoir exécuter une quelconque commande ? Je préfèrerais ne pas le faire, mais l'appareil est enraciné donc je peux exécuter su .

J'utilise la version 4.0.4 d'Android.

3voto

Firelord Points 23064

Le lancement d'applications dans Android n'est pas simple. Vous devrez utiliser am start combiné avec certains <PARAMS> pour lancer l'application ou une section particulière de celle-ci.

D'après les commentaires, il semble que vous souhaitiez lancer le fichier texte en utilisant Rédacteur de la note ES . Dans ce cas, identifiez d'abord l'activité responsable de la fenêtre d'édition que vous voyez lorsque le fichier est ouvert dans l'éditeur utilisant l'interface graphique.

<strong>Note : </strong>J'ai testé la solution sur Android 4.2, 4.4 et 5.0.

Instructions

  1. Ouvrez le fichier manuellement dans l'éditeur à l'aide de l'interface graphique, et assurez-vous qu'il reste actif à l'écran.

  2. Connectez votre téléphone au PC en mode de débogage, configurez ADB sur le PC, et entrez les commandes dans le terminal/cmd du PC :

    adb shell
    su
    dumpsys activity | grep mFocusedActivity

    La sortie peut ressembler à ceci :

    mFocusedActivity: ActivityRecord{42839028 u0 com.estrongs.android.pop/.app.editor.PopNoteEditor}

    L'information pertinente (activité) est .app.editor.PopNoteEditor et le nom du paquet est com.estrongs.android.pop . Vous pouvez utiliser la commande dumpsys activity pour voir des choses plus utiles.

    C'est juste pour une brève compréhension. Gardez la chaîne entière ( com.estrongs.android.pop/.app.editor.PopNoteEditor ) prêt à être utilisé.

  3. Vous pouvez fermer l'éditeur sur Android. Ouvrez votre application de terminal préférée sur Android et entrez :

    su
    am start -n <PACKAGE_NAME/ACTIVITY> -d <FILEPATH> --activity-clear-task
    • -n permettra de lancer le composant mentionné de l'application.
    • <PACKAGE_NAME/ACTIVITY> est la chaîne de caractères que nous avons notée à l'étape 2. Pour Rédacteur de la note ES ce serait com.estrongs.android.pop/.app.editor.PopNoteEditor .
    • -d est de permettre de transmettre des données à l'activité de l'application.
    • <FILEPATH> est l'emplacement du fichier texte que vous voulez ouvrir.
    • --activity-clear-task permettra de s'assurer que l'activité n'est pas lancée à partir des "Récents" mais à partir de zéro.

    (Entrer <code>am start</code> pour plonger plus profondément dans des choses intéressantes).

    Dans mon cas, la requête finale pour le fichier aero.txt sous /sdcard/airdroid/ ressemblait :

    am start -n com.estrongs.android.pop/.app.editor.PopNoteEditor -d file:///sdcard/airdroid/aero.txt --activity-clear-task

    Le fichier s'est ouvert avec succès.

  4. J'utilise Éditeur de texte QuickEdit comme éditeur de texte par défaut et la requête pertinente ressemblait à ceci :

    am start -n com.rhmsoft.edit/.activity.MainActivity -d file:///sdcard/airdroid/nmon.txt --activity-clear-task

Amusez-vous bien !

2voto

Firelord Points 23064

En plus de cette réponse vous pouvez utiliser la solution suivante qui est tirée de de rohitverma respuesta ici et remarqué dans Commentaire de Lucky .

  1. am start -a android.intent.action.VIEW -d <FILEPATH> -t text/plain --activity-clear-task

    Il exécutera com.android.internal.app.ResolverActivity l'activité de android système avec tous les candidats enregistrés pour le "texte brut" disponibles pour la sélection dans un dialogue.

    Pour mon dossier, la requête était et le dialogue affiché était :

    am start -a android.intent.action.VIEW -d file:///sdcard/airdroid/dd.sh -t text/plain --activity-clear-task

                                                                IMG: dialog .

  1. Vous pouvez utiliser input keyevent <KEYCODE/KEYNAME> pour sélectionner l'application dans la boîte de dialogue. La liste des événements d'entrée est disponible ici par LionCoder .

    Les événements clés pertinents sont les suivants :

    19 -->  "KEYCODE_DPAD_UP" 
    20 -->  "KEYCODE_DPAD_DOWN" 
    21 -->  "KEYCODE_DPAD_LEFT" 
    22 -->  "KEYCODE_DPAD_RIGHT"

    Et l'usage serait comme :

    input keyevent 20

    o

    input keyevent KEYCODE_DPAD_DOWN 

    Utilisez la combinaison de ces éléments pour atteindre l'objectif, et utilisez 66 --> "KEYCODE_ENTER pour simuler "entrée".


Je choisirais quand même cette réponse si nécessaire :)

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