2 votes

Comment ouvrir un fichier situé dans un répertoire non-sdcard dans Tasker ?

Comment ouvrir un fichier situé dans un sous-dossier du dossier racine, en utilisant tasker, dans LineageOS 14.1 ?

Mes tentatives jusqu'à présent ont été de :

  1. Créer une nouvelle tâche dans tasker.

  2. Vérifier si tasker a l'autorisation root avec une variable nommée "root disponible": %ROOT. Cela renvoie oui. Par conséquent, je suppose que Tasker a l'autorisation root.

  3. Créer l'action : "ouvrir le fichier"

  4. Cela ne permet que l'accès au /storage/ du lecteur interne ou externe.

  5. Par conséquent, j'ai entré manuellement le chemin d'accès au fichier situé dans le dossier racine que j'essaie d'accéder comme : /data/misc/wifi/wpa_supplicant.conf et ai lancé la tâche, mais cela renvoie l'erreur : fichier introuvable.

    IMG: IMG:

  6. J'ai donc essayé /data/misc/wifi/wpa_supplicant.conf et ai lancé la tâche, mais cela renvoie la même erreur.

  7. J'ai essayé d'ouvrir le fichier avec l'application de fdroid : éditeur, sans ouvrir un explorateur de fichiers pour ouvrir le fichier. Mais je suis incapable de transmettre l'emplacement du fichier en tant qu'argument à l'application éditeur lorsque je crée une tâche pour le faire.

1 votes

Je ne sais rien de Tasker mais je connais les commandes shell. Si c'est ce que Tasker utilise, le problème est que vous devez simplement vous rendre dans le répertoire exemple : cd /data/misc/wifi/ pour ajouter une autre commande && ou ; devrait faire l'affaire exemple : cd /data/misc/wifi/ && votre commande ou cd /data/misc/wifi/; votre commande selon la façon dont vous voulez que la commande soit exécutée.

2 votes

@BoLawson si c'est une commande shell, il suffit simplement de la préfixer avec ! pour indiquer à Tasker de l'exécuter avec des pouvoirs root AFAIK (il se pourrait qu'entre-temps il y ait une case à cocher pour cela). Cependant, je ne sais pas s'il existe un équivalent pour ouvrir un fichier.

2 votes

Bon point @Izzy, pour ouvrir le fichier, la commande nano devrait suffire en regardant comme !nano /data/misc/wifi/wpa_supplicant.conf s'il revient avec une erreur de fichier/répertoire inconnu, alors faire cd dans le répertoire. Sur le premier commentaire, mettre ! devant le cd.

5voto

Firelord Points 23064

L'action Ouvrir Fichier intégrée ne semble pas fonctionner pour les chemins de fichiers non /storage car elle est codée en dur (je l'ai présumé à partir de ses journaux d'erreur) pour charger uniquement un fichier situé sous /storage/emulated/0. Même si vous mentionnez l'emplacement absolu en utilisant file://, il ajouterait toujours /storage/emulated/0 au chemin du fichier et renverrait une erreur.

Parce que l'action Ouvrir Fichier envoie simplement une intention, nous pouvons le faire manuellement nous-mêmes. L'action Envoyer Intention est assez bonne pour cela, sauf qu'elle échoue également avec des chemins de fichiers non /sdcard. Tasker implémente FileProvider (une manière de partager des fichiers de manière sécurisée avec d'autres applications). L'action pourrait fonctionner mais le fichier du manifeste de Tasker prévoit de ne pas exporter le fournisseur de fichiers, ce qui signifie que d'autres applications ne peuvent pas en faire usage. Comme Tasker convertit même le chemin de fichier absolu (avec file://) en un URI de fournisseur de fichiers, il n'y a aucun moyen pour nous de charger un fichier non /sdcard en utilisant cette action également, sauf demander au développeur de Tasker de corriger cela, ou que l'utilisateur lui-même ajuste le fichier du manifeste.

Cependant, la solution est disponible en utilisant la ligne de commande. Utilisez l'action :

Code → Exécuter Shell :

  • Commande :

    am start -a android.intent.action.VIEW -d "file://CHEMIN_FICHIER" -t "text/plain" -f 0x13000000 -n android/com.android.internal.app.ResolverActivity

    file:// est destiné tel quel. Dans votre cas, le chemin du fichier devrait être file:///data/misc/wifi/wpa_supplicant.conf.

    text/plain peut également être remplacé par text/* si vous ne connaissez pas le type MIME de votre fichier.

    (Vous pouvez en savoir plus sur am ici.) Je ne sais pas ce que ce drapeau (0x13000000) fait en particulier.

  • cocher Utiliser Root

L'exécution de la tâche vous donnera maintenant la feuille inférieure avec toutes les applications qui peuvent charger un fichier avec le type MIME text/plain. Cependant, lors des tests, seule l'application QuickEdit a pu charger ce fichier avec succès, donc je recommande de l'utiliser à moins que vous ne parveniez à le faire fonctionner avec un autre éditeur.

0 votes

Joli, j'ai installé Tasker pour le tester et ça fonctionne +1 bonne appli

0 votes

Les commentaires ne sont pas destinés à des discussions prolongées ; cette conversation a été déplacée vers le chat.

1 votes

Merci beaucoup pour l'explication détaillée. Je peux confirmer que les étapes décrites avec la commande am start -a android.intent.action.VIEW -d "file://file:///data/misc/wifi/wpa_supplicant.conf" -t "text/plain" -f 0x13000000 -n android/com.android.internal.app.ResolverActivity fonctionnent dans Tasker V5.2.bf1. En effet, le seul éditeur de texte avec lequel j'ai pu le faire fonctionner pour le moment est QuickEdit comme vous l'avez mentionné.

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