Astuce comment utiliser l'API Assist d'Android

Aujourd'hui, les utilisateurs d'Android n'ont plus besoin d'ouvrir un navigateur et d'effectuer une recherche pour en savoir plus sur les objets qu'ils rencontrent lors de l'utilisation d'une application. Ils peuvent plutôt utiliser un assistant. Si vous possédez un appareil fonctionnant sous Android 6.0 ou version ultérieure, vous connaissez peut-être déjà son assistant par défaut, initialement appelé Google Now on Tap. Dernièrement, son nom a été changé en recherche d'écran.

Les assistants, bien que sensibles au contexte, ne sont généralement pas très précis. Pour améliorer la précision, les développeurs d'applications doivent utiliser l'API Assist. Dans cette astuce, je présenterai les bases de l'API et vous aiderai à créer votre propre assistant personnalisé..

1. Activer l'assistant par défaut

Si vous n'avez jamais utilisé l'assistant sur votre périphérique ou votre émulateur, il n'est probablement pas encore activé. Pour l'activer, maintenez le bouton d'accueil enfoncé. Dans la boîte de dialogue qui s’affiche, appuyez sur le bouton Oui je suis dedans bouton.

Vous pourrez désormais accéder à l'assistant par défaut à partir de n'importe quelle application en appuyant simplement longuement sur le bouton d'accueil. Il est à noter que l'assistant par défaut fait partie de l'application Google et ne fonctionne de manière optimale qu'une fois que vous êtes connecté à votre compte Google..

2. Envoi d'informations à l'assistant

L'assistant par défaut est très puissant. Il peut automatiquement fournir des informations contextuelles basées sur le contenu actuel de l'écran. Il le fait en analysant la hiérarchie de vues de l'activité active.

Pour le voir en action, créez une nouvelle activité dans votre projet Android Studio et ajoutez les éléments suivants: Affichage widget, qui porte le nom d'un roman populaire, à sa présentation:

Si vous exécutez votre application maintenant et que vous appuyez longuement sur le bouton d'accueil, l'assistant par défaut affiche les cartes qui sont quelque peu liées au contenu de l'écran. Affichage widget.

En envoyant des informations supplémentaires à l'assistant, vous pouvez améliorer sa précision. Pour ce faire, vous devez d’abord remplacer la onProvideAssistContent () méthode de votre Activité classe.

@Override public null onProvideAssistContent (AssistContent outContent) super.onProvideAssistContent (outContent); 

Vous pouvez maintenant utiliser le AssistContent objet pour envoyer des informations à l'assistant. Par exemple, si vous souhaitez que l’assistant affiche une carte permettant à l’utilisateur de lire le roman sur Goodreads, vous pouvez utiliser setWebUri () méthode.

outContent.setWebUri (Uri.parse ("http://www.goodreads.com/book/show/13023.Alice_in_Wonderland"));

Voici à quoi ressemble la nouvelle carte:

L’API Assist vous permet également de transmettre des données structurées à l’assistant à l’aide du setStructuredData () méthode, qui attend une chaîne JSON-LD. Le moyen le plus simple de générer la chaîne JSON-LD consiste à utiliser le JSONObject classe et ses mettre() méthode.

L'exemple de code suivant vous montre comment générer et envoyer des données structurées sur le roman:

outContent.setStructuredData (nouveau JSONObject () .put ("@ type", "Book") .put ("auteur", "Lewis Carroll") .put ("nom", "Alice au pays des merveilles") .put ("description "," Ceci est un roman de 1865 sur une fille nommée Alice "+" qui tombe à travers un terrier de lapin et "+" entre dans un monde fantastique. ") .ToString ());

Si vous choisissez de coder manuellement votre chaîne JSON-LD, je vous suggère de vous assurer qu'elle est valide à l'aide de l'outil de test de données structurées de Google..

3. Créer un assistant personnalisé

Si vous n'êtes pas satisfait de la manière dont l'assistant de l'application Google traite vos données, vous devez envisager de créer votre propre assistant. Cela ne prend pas beaucoup d'effort.

Tous les assistants en douane doivent avoir les éléments suivants:

  • une VoiceInteractionService objet
  • une VoiceInteractionSession objet
  • une VoiceInteractionSessionService objet
  • un fichier de métadonnées XML décrivant l'assistant personnalisé

Tout d’abord, créez une nouvelle classe Java appelée MyAssistantSession et en faire une sous-classe du VoiceInteractionSession classe. À ce stade, Android Studio devrait générer automatiquement un constructeur pour ce dernier..

public class MyAssistantSession étend VoiceInteractionSession public MyAssistantSession (contexte de contexte) super (contexte); 

En remplaçant le onHandleAssist () méthode de la classe, vous pouvez définir le comportement de votre assistant. Pour l'instant, analysons simplement la chaîne JSON-LD générée à l'étape précédente et affichons son contenu sous la forme Pain grillé message. Comme vous l’auriez peut-être deviné, pour récupérer la chaîne JSON-LD, vous devez utiliser le getStructuredData () méthode du AssistContent objet.

Le code suivant vous montre comment afficher la valeur de la chaîne JSON-LD. la description clé en tant que Pain grillé message.

@Override public void onHandleAssist (données d'ensemble, structure AssistStructure, contenu d'AssistContent) super.onHandleAssist (données, structure, contenu); try // Récupération de données structurées JSONObject structuredData = new JSONObject (content.getStructuredData ()); // Affiche la description sous forme de Toast Toast.makeText (getContext (), structuralData.optString ("description"), Toast.LENGTH_LONG) .show ();  catch (JSONException e) e.printStackTrace (); 

UNE VoiceInteractionSession l'objet doit être instancié à l'intérieur d'un VoiceInteractionSessionService objet. Par conséquent, créez une nouvelle classe Java appelée MyAssistantSessionService et en faire une sous-classe de VoiceInteractionSessionService. À l'intérieur de onNewSession () méthode, appelez le constructeur de MyAssistantSession.

public class MyAssistantSessionService étend VoiceInteractionSessionService @Override public VoiceInteractionSession onNewSession (Bundle) renvoie un nouveau MyAssistantSession (this); 

Notre assistant a également besoin d'un VoiceInteractionService objet. Par conséquent, créez-en un appelé MyAssistantService. Vous n'avez pas à écrire de code à l'intérieur.

Classe publique MyAssistantService étend VoiceInteractionService 

Pour spécifier les détails de la configuration de l’assistant, vous devez créer un fichier de métadonnées XML et le placer dans le dossier. res / xml dossier de votre projet. L'élément racine du fichier doit être un balise spécifiant les noms complets des deux VoiceInteractionService et le VoiceInteractionSessionService sous-classes.

Voici un exemple de fichier de métadonnées:

 

Enfin, en déclarant les services dans le projet de votre AndroidManifest.xml fichier, assurez-vous qu'ils ont besoin du BIND_VOICE_INTERACTION autorisation.

       

Votre assistant personnalisé est maintenant prêt.

4. Utilisation de l'assistant personnalisé

Pour pouvoir utiliser votre assistant personnalisé, vous devez le définir comme assistant par défaut de votre appareil Android. Par conséquent, ouvrez le Réglages application et accédez à Applications> Applications par défaut> Assist & voice input. Ensuite, cliquez sur le Assistent l'application option pour sélectionner votre assistant.

À ce stade, si vous exécutez votre application et appuyez longuement sur le bouton d'accueil, vous devriez pouvoir voir les informations de votre assistant personnalisé. Pain grillé message.

Conclusion

Dans cette astuce, vous avez appris à utiliser l’API Assist pour interagir avec les assistants de la plate-forme Android. Vous avez également appris à créer un assistant personnalisé rudimentaire. Mais attention: comme les assistants peuvent lire presque tout le texte présent sur l'écran de l'utilisateur, vous devez vous assurer que votre assistant personnalisé traite les données sensibles de manière sécurisée..

Pour en savoir plus sur l’API Assist, reportez-vous à sa documentation officielle. Et pour en savoir plus sur le codage et les API de pointe pour la plate-forme Android, consultez certains de nos autres cours et tutoriels ici sur Envato Tuts.+!