Ce n'est pas une solution parfaite mais elle devrait vous aider. Le texte préformaté qui suit est un script très simple qui peut ouvrir une série de signets étiquetés avec un mot-clé particulier. Chaque signet sera ouvert dans le navigateur sélectionné par défaut pour le type d'URL du signet.
Script
#!/system/bin/sh
list=/data/media/0/bms\_list;
keyword="$1";
browser="$2";
mkfifo $list;
# force-stop default browser
\[\[ "$browser" \]\] && am force-stop "$browser";
# get URL of bookmarks associated with the supplied keyword
content query --uri content://org.mozilla.firefox.db.browser/bookmarks --projection url --where "keyword='$keyword'" | busybox sed 's/.\*url=//g' > $list &
# Take each URL from the saved output and launch it using the default browser
while read line; do
am start -a android.intent.action.VIEW -d "$line" --activity-exclude-from-recents;
sleep 1;
done < $list
rm $list;
Conditions préalables
Voici les conditions préalables pour que le script fonctionne :
-
Vous doit avoir un accès Root 1 .
-
Busybox doit être installé et disponible sous la variable PATH.
-
Navigateur Firefox pour Android est nécessaire. Il est nécessaire parce que Chrome ne prend pas en charge les balises, que les dossiers de signets ne sont pas visibles via le fournisseur de contenu de Chrome et qu'il me serait pénible de commencer à analyser le fichier de signets de Chrome disponible dans son répertoire privé. Je n'ai pas fait de tests avec d'autres navigateurs, c'est donc une autre raison pour laquelle j'ai fait de Firefox un prérequis.
Il est à noter que vous n'êtes pas obligé d'utiliser le navigateur Firefox comme votre chauffeur quotidien mais uniquement pour créer et conserver des signets afin de les trier en fonction de mots-clés particuliers. Le navigateur Firefox ne supporte pas les mots-clés multiples pour les marque-pages, à partir de la v44.0.2.
Pour ajouter un mot-clé : Mettez un lien en signet dans Firefox, allez dans l'onglet Signets, appuyez longuement sur votre signet → Modifier → ajoutez votre mot-clé sous Mot-clé.
Je n'ai pas testé avec un mot-clé contenant un espace, donc si le script ne fonctionne pas avec un mot-clé contenant un ou plusieurs espaces, remplacez le ou les espaces par _ dans vos signets, puis essayez le script.
-
Je n'ai testé cette solution qu'avec Firefox et Chrome, je ne peux donc pas garantir qu'elle fonctionnera avec n'importe quel navigateur. Cependant, le bon sens veut que s'il s'agit d'un navigateur pour la navigation occasionnelle, il se sera enregistré pour une intention ayant un type de données URL, donc le navigateur ne devrait pas avoir de problème avec mon script.
Nota: Pour une raison quelconque, Firefox n'a pas pu gérer la série de signets au bout d'un certain temps et a planté. (En fait, il s'est planté à chaque fois.) En revanche, Chrome v45.0.2564.95 ne s'est pas planté, même une seule fois.
Voici comment le script peut être exécuté après l'avoir enregistré sous /sdcard avec extension .sh :
Exécution du script
Installer une application d'émulation de terminal et exécuter :
su -c 'sh /sdcard/FILE KEYWORD BROWSER'
Ejemplo:
su -c 'sh /sdcard/bms\_launch.sh Stack\_Exchange com.android.chrome' # this would launch all the bookmarks tagged with the keyword Stack\_Exchange in the default browser com.android.chrome
Ce qu'il faut savoir :
-
DOSSIER : nom du fichier du script, par exemple : bms_launch.sh
-
MOT CLÉ : le mot-clé auquel tous les signets associés doivent être recherchés et être lancés dans le navigateur par défaut
-
BROWSER : nom du paquet de votre navigateur par défaut. Pour connaître le nom du paquet, suivez Afficher le nom complet du paquet de l'application ?
Nota: il n'est pas nécessaire de fournir le nom du paquet du navigateur par défaut. Je l'ai utilisé parce que j'ai dû forcer l'arrêt de Chrome, car Chrome causait des complications sans forcer l'arrêt.
Une exécution pratique
C'est à vous de décider comment vous allez exécuter ce script dans votre appareil. Je peux vous recommander ces deux méthodes. N'importe laquelle d'entre elles serait suffisante.
1 L'accès à la racine est nécessaire car je ne sais pas comment générer (et analyser facilement) une liste de signets à partir d'un navigateur. <em>dynamiquement </em>. Même si je peux avoir une telle liste, je ne pourrais pas continuer à moins de savoir que ces signets peuvent être triés à l'aide d'une balise ou d'un mot clé. C'est pourquoi j'ai choisi Firefox et Root access.
La dépendance à l'égard d'un seul mot-clé pourrait causer des inconvénients, mais je vous ai donné une (peut-être bonne) idée. Si votre navigateur préféré prend en charge plusieurs balises/mots-clés pour les signets, vous ne devriez avoir aucun problème à modifier mon script en fonction de vos besoins.