Comment prendre la dictée vocale sur votre portable android

Avez-vous une montre Android Wear? Si oui, vous aimez sans doute, et que vous avez déjà remarqué qu'il ne dispose pas d'un clavier. Si pas, essayez de regarder pour un. J'attendrai.

Sommaire

Si vous êtes un développeur de Android Wear, vous devriez savoir que la plupart des applications sur Android Wear sont généralement en lecture seule. Porter des applications Android sont utiles pour se averti des choses particulières que vous devez faire, mais si vous voulez faire quelque chose compliquée, vous aurez plus de chances de sortir votre téléphone et de le faire là plutôt que sur votre montre.

La commande vocale est une exception intéressante à cette règle. Avec la dictée vocale, vous pouvez facilement "type" d'informations dans votre montre sans avoir à utiliser un clavier.

Ici, vous allez apprendre à ajouter de nouveaux éléments à votre base de données en utilisant votre voix.

Trois types de contrôle de la voix

Android Wear fournit trois types de contrôle de la voix hors de la boîte.

  • Les actions vocales fournies par le système, tels que "Prendre une note" ou "Appelez un taxi / cab".

  • Commandes vocales App fournis "Démarrer", tels que "lancer des tâches" ou "Démarrer MyRunningApp"

  • Free-forme voix dictée

Les actions vocales fournies par le système sont les plus commodes pour les utilisateurs. Ils ne nécessitent pas l'utilisateur à apprendre de nouveaux messages vocaux, et ils "fonctionnent" à partir de n'importe où. Si l'une des applications de actions intégrées de voix est appropriée pour votre application, ceci est la meilleure façon d'aller.

Les commandes vocales d'applications fourni "Start" sont un moyen viable mais moins puissante à ajouter des commandes vocales pour votre application. Chaque activité dans votre application peut avoir un nom distinct de démarrage spécifié par l'étiquette de l'activité. Par exemple, si vous définissez votre étiquette de l'activité des tâches pour MyTasksApp, alors votre activité Tâches allait lancer lorsque l'utilisateur dit "Démarrer MyTasksApp". Contrairement aux actions vocales fournies par le système, qui reconnaissent des alternatives communes à l'action de la voix, l'utilisateur doit correspondre à l'étiquette exactement. Dire «Démarrer TasksApp" ne sera pas commencer votre application, par exemple.

L'option de la dictée vocale de forme libre est une option très puissante, mais elle ne nécessite que l'utilisateur soit déjà dans votre application afin d'en profiter. Parce qu'il est pas toujours évident comment lancer une application Android Porter, cette option est une bonne chose, mais moins fréquente.

Android Wear est livré avec un "Prendre une note« action fourni par le système, nous allons donc l'utiliser pour ajouter une tâche à notre application.

Configuration du Filtre intention

Lorsque l'utilisateur dit "prendre note" de leur montre Android, le texte résultant est envoyé à votre application via une intention. Pour capturer cette intention, vous devez créer une activité et un filtre qui correspond à l'intention de l'intention.

Ajouter un TakeVoiceNote activité de la AndroidManifest.xml de votre application à l'usure, et enregistrer un filtre intention de saisir la SELF_NOTE intention:

Obtenir le texte de la voix




Il est la chose la plus facile au monde à obtenir la sortie de l'activité de reconnaissance vocale. Vous avez juste besoin d'ajouter le TakeVoiceNote activité et récupérer le texte de l'intention, comme ceci:

public class TakeVoiceNote étend Activité {.Overrideprotected vide onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState) -string VoiceNote = getIntent () getStringExtra (Intent.EXTRA_TEXT) -}}

C'est tout! Quel que soit le mode d'ledit transcrit et a été placé dans le VoiceNote variable.

Maintenant, la partie la plus délicate est de savoir quoi faire avec ce texte.

Ouvre une connexion à Google Play

Les API d'action vocaux sont assez simples, mais pour les utiliser, vous aurez besoin de mettre en place les services Google Play API, et ceux qui sont un peu plus compliqué à utiliser.

Pour ajouter Google Play Services Lieu API à votre projet, placez la dépendance suivant dans votre build.config fichier:

dépendances {compile'com.google.android.gms: play-services-portables: 6.5.87 '}

Ensuite, ajoutez la ligne suivante à votre AndroidManifest.xml:

android: name ="com.google.android.gms.version"Android: valeur="@ entier / google_play_services_version"/>

Pour établir une connexion avec le Google Play Services, ajoutez la ligne suivante à votre activité:

// La Google API client, pour portable servicesGoogleApiClient googleApiClient-Overridepublic Vide onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState) -googleApiClient = nouveau GoogleApiClient.Builder (ce).addConnectionCallbacks (ce).addOnConnectionFailedListener (ce).addApi (Wearable.API).construire () -...} OnStartOverridepublic void () {super.onStart () -googleApiClient.connect () -}Overridepublic Annuler onStop () {googleApiClient.disconnect () -super.onStop () -}

Rappelez-vous que l'ID d'application de votre application de téléphone et l'application d'usure doivent être les mêmes! Si elles sont différentes, la connexion ne sera pas établie.

Ce code crée une nouvelle GoogleApiClient objet dans votre onCreate () de se connecter à Google Play Services, puis il tente de se connecter dans votre onStart () et débranchez votre onStop (). La GoogleApiClient a besoin d'un objet de rappel à l'informer quand une connexion a été établie, de sorte que vous aurez besoin d'ajouter des rappels à votre activité.

public class TakeVoiceNote étend instruments d'activitésGoogleApiClient.ConnectionCallbacks,GoogleApiClient.OnConnectionFailedListener{Overridepublic vide onConnected (Bundle connectionHint) {// Connecté à Google Jouer services!// Ce est  tu sera écrire votre nouveau tâche à la// base de données.}Overridepublic vide onConnectionSuspended (int la cause) {// La Google Jouer connexion a été interrompu.// Désactiver quelconque UI composants cette dépendre sur Google // API jusqu'à onConnected () est appelé.//// Ce exemple doesn't besoin à faire n'importe quoi Ici.}Overridepublic vide onConnectionFailed (ConnectionResult résultat) {// Ce rappeler est important pour manipulation erreurs // cette mai se produire tandis que tenter à relier avec // Google.//// Pour Plus information sur Comment à manipuler erreurs, // voir// https://developer.android.com/google/auth/api-client.html}}

Félicitations! Vous avez maintenant correctement configurer une connexion à Google Play services qui se déconnecte automatiquement lorsque votre activité est arrêtée. La prochaine étape est de demander au téléphone pour créer une nouvelle tâche.

Demander le téléphone pour ajouter une nouvelle tâche

Maintenant que vous avez une connexion à Google Play, la prochaine étape est d'envoyer le texte de la voix à votre téléphone de sorte que le téléphone peut ajouter une nouvelle tâche à sa base de données.

Mettre à jour le onConnected () méthode de votre activité pour envoyer un message à votre téléphone avec le contenu de la dictée vocale:

public class TakeVoiceNote étend Activityimplements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener {// Le chemin (un peu comme un URI) qui identifie l'opération de // vous souhaitez effectuer sur le combiné. Chaîne private static final PATH_ADD_TASK = "/ AddTask"- ... Override public void onConnected (Bundle bundle) {Log.d ("TakeVoiceNote", "onConnected") - // Le texte de reconnaissance de la parole est transmise via le // IntentionChaîne VoiceNote = getIntent (). GetStringExtra ( Intent.EXTRA_TEXT) -// Convertir la chaîne d'octetsdernier octet [] = voiceNoteBytes voiceNote.getBytes (Charset.forName ("utf-8")) -// Obtenir une liste de tous les périphériques que vous'// connecté à. Habituellement, ce sera juste votre // Téléphone. Tous les autres périphériques vont ignorer votre message.Wearable.NodeApi.getConnectedNodes (googleApiClient) .setResultCallback (nouvelle ResultCallback() { Override onResult public void (Nœuds GetConnectedNodesResult)  {pour (nœud Node: nodes.getNodes ()) {  // Envoyer le téléphone un message demandant que // Il ajouter la tâche à la base de données Wearable.MessageApi.sendMessage (googleApiClient,node.getId (),PATH_ADD_TASK,voiceNoteBytes) - } finir()- }} ) - }}

Créer la nouvelle tâche sur le téléphone

La seule chose qui reste à faire est d'écouter le message sur votre téléphone afin que vous puissiez créer une nouvelle tâche à la demande. Vous faites cela avec un simple WearableListenerService.

Dans votre application de téléphone, de créer une nouvelle classe nommée AddTaskWearableListenerService et ajoutez le code suivant:

public class AddTaskWearableListenerService extendsWearableListenerService {// doit correspondre à la chaîne dans TakeVoiceNoteprivate static final PATH_ADD_TASK String = "/ AddTask" - @ Overridepublic vide onMessageReceived (MessageEvent MessageEvent) {if (PATH_ADD_TASK.equals (messageEvent.getPath ())) {// Créer la contentValues ​​objectent que tous les magasins // de l'information pour le titre taskString = new String (messageEvent.getData (), Charset.forName ("utf-8")) - valeurs contentValues ​​= new contentValues ​​() - values.put (COLUMN_TITLE, titre) -values.put (COLUMN_NOTES, "") -values.put (COLUMN_DATE_TIME, System.currentTimeMillis ()) -. // Insérez la tâche dans le databasegetContentResolver () (insérer CONTENT_URI, valeurs) -}}}

Vous aurez besoin d'enregistrer le service dans AndroidManifest.xml de votre application de téléphone, donc ajouter ce qui suit à votre nœud d'application:

Testez-le!

Si vous utilisez un émulateur pour votre appareil Android Wear, vous aurez envie de le connecter à votre téléphone Android.

Une fois que ce en marche, aller de l'avant et appuyez sur votre Android Wear pour faire apparaître le menu d'actions, puis cliquez sur l'option de note prenez.

image0.jpg

Si vous utilisez un émulateur de la montre, puis tapez dans votre réponse.

image1.jpg

Une fois la note sauve, tirer vers le haut l'application Tâches sur votre téléphone et vous devriez voir le nouvel élément:

image2.jpg

Félicitations! Vous avez dicté succès une note vocale et enregistré à votre application Tâches.

Il ya toutes sortes de choses intéressantes que vous pouvez faire avec les commandes vocales sur l'usure des plates-formes Android et Android. Pour encore plus d'idées, consultez l'ajout de fonctionnalités voix et recevoir une entrée vocale dans une notification articles sur le site de développeur Android. Piratage heureux!


» » » » Comment prendre la dictée vocale sur votre portable android