2 votes

Démarrer dans un Hangout spécifique avec une seule personne

Je voudrais que ma tablette démarre dans l'application Google Hangouts et ouvre la conversation avec une personne spécifique.

Je peux facilement ouvrir l'application Hangouts avec cette application (ou l'une des nombreuses similaires), mais j'ai besoin d'ouvrir la conversation et cela me laisse sur la page de la liste des personnes.

Les ressources qui ne m'ont pas encore donné la solution:

Question similaire sur Reddit

Discussion similaire pour l'application Tasker

Tutoriel YouTube

Lorsque j'essaie d'utiliser AutoContacts et de journaliser la variable %achangouturi, cela ne fonctionne pas. Beaucoup de gens disent qu'ils ont eu besoin d'activer la synchronisation des contacts dans G+, mais les menus ont changé et ça ne marche pas. C'est le problème le plus courant. Mais ce n'est pas mon cas.

En utilisant l'application Automate, j'ai finalement pu journaliser l'URI du contact, et donc avoir un identifiant unique avec lequel je pourrai un jour, espérons-le, ouvrir une conversation.

La façon dont j'y suis parvenu était en utilisant "Choisir un contact", en définissant la variable de sortie sur contactURI, puis en utilisant le journal pour enregistrer {contactUri}.

Cependant, je ne suis pas encore capable d'ouvrir la discussion Hangout.

En utilisant Automate, je choisis de lancer l'application et je choisis hangouts.

J'ai essayé d'utiliser:

  • ACTION: android.intent.action.VIEW
  • DONNÉES: content://com.android.contacts/data/xxxx
    • ainsi que DONNÉES: content://com.android.contacts/contacts.lookup/xxxx
  • TYPE MIME: vnd.android.cursor.item/vnd.googleplus.profile.comm

Dans la réponse Reddit, je ne comprends pas et je ne trouve pas les options pour définir les indicateurs qu'il a utilisés dans Tasker ou Automate:

INDICATEURS: FLAG_ACTIVITY_FORWARD_RESULT FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET FLAG_ACTIVITY_PREVIOUS_IS_TOP

J'ai également essayé d'utiliser et de ne pas utiliser com.google.android.talk - com.google.android.apps.babel.phone.BabelProfileActionActivity dans le champ d'activité.

1 votes

Je ne pense pas qu'un kit préfabriqué de cette nature existe.

0 votes

Si la conversation reste toujours à une position particulière, vous pouvez avoir du succès en utilisant AutoInput

0 votes

Si quelqu'un explique comment utiliser l'application Automate pour faire ce que j'ai décrit, je marquerai cela comme répondue.

1voto

Matthew Slyman Points 131

J'ai fait cela en utilisant Tasker. Tu es complètement sur la bonne voie, instructions ci-dessous.

SQL pour trouver l'ID du contact

Trouver l'ID du contact unique à partir de la base de données des contacts (il semble que vous l'ayez déjà fait). Au cas où vous auriez le mauvais ID, vous pouvez vérifier avec les instructions SQL. J'ai eu quelques problèmes avec cela car je n'entrais que le prénom lors de la recherche du contact, et pour une raison quelconque, il n'était pas trouvé. Quoi qu'il en soit, cette requête SQL devrait fonctionner sur le fichier : /data/data/com.android.providers.contacts/databases/contacts2.db

Vous pouvez utiliser une application/programme SQL, accéder à ce fichier, et entrer la requête SQL :

SELECT _id FROM data WHERE raw_contact_id LIKE (SELECT _id from raw_contacts WHERE display_name LIKE "Nom du contact" ORDER BY _id DESC LIMIT 1) AND DATA4 LIKE "10" ORDER BY _id DESC LIMIT 1

Ou vous pouvez entrer cette commande dans le terminal, à condition d'avoir sqlite3 sur votre appareil spécifique (souvent non inclus dans les appareils en production) :

sqlite3 /data/data/com.android.providers.contacts/databases/contacts2.db 'SELECT _id FROM data WHERE raw_contact_id LIKE (SELECT _id from raw_contacts WHERE display_name LIKE "Nom du contact" ORDER BY _id DESC LIMIT 1) AND DATA4 LIKE "10" ORDER BY _id DESC LIMIT 1' | sed s/\"//g

Remplacez simplement "Nom du contact" et mettez le contact que vous souhaitez ouvrir entre guillemets. De préférence, le nom complet du contact.

Téléphone non rooté

Je travaillais sur une solution pour cela, mais la sauvegarde d'application est explicitement désactivée dans le manifeste de l'application de contacts. Essayez la solution ci-dessous et faites-moi savoir si cela fonctionne. Je n'ai pas pu le tester sans root.

Installez Tasker et AutoContacts. AutoContacts est payant, mais vous pouvez obtenir une dans les 15 minutes suivant l'achat de la version complète si vous voulez juste le tester.

Configurez une tâche dans Tasker, nommez-la, puis ajoutez une nouvelle action Plugin > AutoContacts > AutoContacts. Ensuite, dans la configuration, saisissez "Nom du contact ou surnom" le nom du contact souhaité. Appuyez sur la coche. Appuyez sur le bouton de retour dans Tasker pour revenir à la liste des actions de cette tâche (vous en aurez maintenant 1). Ajoutez une nouvelle action Alert > Flash. Appuyez sur le bouton à droite de "texte" qui ressemble à une étiquette et sélectionnez "Autocontacts: 01. Hangout Uri ... %achangouturi". Appuyez sur retour pour aller à la liste des actions. Appuyez à nouveau sur retour pour enregistrer la tâche. Revenez dans la tâche et exécutez-la. L'ID dont vous avez besoin pour le contact que vous voulez sera à la fin de la chaîne qui s'affiche et sera généralement composé de 5 chiffres. Exécutez à nouveau la tâche si vous ne l'avez pas capturé à temps.

Création de tâche Tasker

Une fois l'ID noté, vous devez aller dans Tasker pour créer la tâche qui ouvrira Hangouts à la conversation. Vous avez la bonne idée d'utiliser un intent, c'est juste un peu différent de ce que vous avez déjà. Dans la nouvelle tâche, créez une nouvelle action "+" sélectionnez Système > Envoyer Intent. Créez l'intent dans le format suivant :

Action : android.intent.action.VIEW
Cat : Aucun
Type MIME : Laissez vide
Données : content://com.android.contacts/data/#####
Extras/package/class : Laissez vide
Cible : Activité

Où ##### est l'ID de contact que vous avez trouvé précédemment. Les miens étaient tous composés de 5 chiffres.

Maintenant, vous devriez pouvoir utiliser cette tâche pour ce que vous voulez. Testez-la en appuyant sur le bouton de lecture dans la tâche dans Tasker. Un petit conseil, j'utilise principalement le mien en conjonction avec AutoVoice pour ouvrir un message que je viens de recevoir. J'ai trouvé très utile de pouvoir lancer Hangouts vers l'écran principal et j'ai trouvé cela assez difficile car le "kill app" de Tasker ne redémarré pas complètement Hangouts. J'ai trouvé la manière de le faire est de créer une action "Lancer l'application" et de sélectionner la case à cocher "Toujours lancer une nouvelle copie". Cela ouvrira toujours Hangouts à la liste des fils principaux.

La plupart de ceci provient de cette discussion du groupe Google. Bonne chance, faites-moi savoir si vous rencontrez des problèmes.

0 votes

Le même devrait fonctionner en automatiser. Je vais juste essayer de laisser Mime vide et de formater le reste tel quel ci-dessus.

0 votes

Aucune des applications SQL que j'ai utilisées n'a accès à cette base de données/dossiers. J'ai essayé d'utiliser adb, mais je n'ai pas la permission de extraire. Y a-t-il un moyen de faire cela sans root?

0 votes

Hmmm... J'ai accès root. Je ne suis pas sûr si tu peux. Donne-moi une seconde.

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