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é..
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..
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..
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:
VoiceInteractionService
objetVoiceInteractionSession
objetVoiceInteractionSessionService
objetTout 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.
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.
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.+!