Wie Take Stimme Diktat auf Ihrem Android-Wearable

Haben Sie eine Android Wear Uhr? Wenn ja, lieben Sie es wahrscheinlich, und Sie haben schon bemerkt, dass es keine Tastatur hat. Wenn nicht, versuchen Sie für einen suchen. Ich werde warten.

Wenn Sie ein Android Wear-Entwickler sind, sollten Sie wissen, dass die meisten Anwendungen auf Android Wear sind in der Regel schreibgeschützt. Android Wear-Apps sind nützlich für die über bestimmte Dinge mitgeteilt bekommen was Sie tun müssen, aber wenn man etwas kompliziert machen wollen, werden Sie höchstwahrscheinlich Ihr Telefon herausziehen und es tun es nicht auf die Uhr.

Sprachsteuerung ist eine spannende Ausnahme von dieser Regel. Mit Stimme Diktat, können Sie einfach "Typ" Informationen in Ihrer Uhr, ohne eine Tastatur zu verwenden.

Hier erfahren Sie, wie neue Objekte zu Ihrer Datenbank hinzufügen, um Ihre Stimme.

Drei Arten von Sprachsteuerung

Android Wear bietet drei Arten von Sprachsteuerung aus dem Kasten heraus.

  • Vom System bereitgestellte Sprach Aktionen wie "Take a note" oder "Rufen Sie ein Taxi / Taxi".

  • App-bereitgestellt Stimme "Start" Befehle, wie "Start Aufgaben" oder "Start MyRunningApp"

  • Freiform Stimme Diktat

Die vom System bereitgestellten Sprach Aktionen sind die bequemste für die Nutzer. Sie benötigen keine der Benutzer keine neuen Sprachansagen zu lernen, und sie "einfach funktionieren" von überall her. Wenn einer von Android integrierte Sprach Aktionen ist angemessen für Ihre Anwendung, ist dies der beste Weg zu gehen.

Die App bereitgestellten Stimme "Start" Befehle sind eine tragfähige, aber weniger leistungsfähige Methode Stimme hinzufügen, um Ihre App-Befehle. Jede Aktivität in Ihrer Anwendung können einen separaten Start Namen durch die Aktivität des Etiketts angegeben haben. Zum Beispiel, wenn Sie setzen Ihre Aufgaben Aktivität Label MyTasksApp, dann würde starten Sie Ihre Aufgaben Aktivität, wenn der Benutzer sagt "Start MyTasksApp". Im Gegensatz zu den vom System bereitgestellte Sprach Aktionen, die auf die Stimme Aktion gemeinsam Alternativen erkennen, muss der Benutzer das Etikett genau übereinstimmen. Zu sagen, "Start TasksApp" wird Ihre App nicht starten, zum Beispiel.

Die Freiform Stimme Diktat Option ist eine sehr leistungsfähige Option, aber es erfordert, dass der Benutzer bereits um in Ihrer Anwendung sein, die Vorteile daraus zu ziehen. Denn es ist nicht immer klar ist, wie ein Android Wear App zu starten, diese Option ist gut, aber weniger häufig.

Android Wear kommt mit einem System bereitgestellte "Take a note" Aktion, so lassen wir das verwenden, um eine Aufgabe zu unserer App hinzuzufügen.

Richten Sie die Intent-Filter

Wenn der Benutzer sagt: "Nehmen Sie eine Notiz", um ihre Android-Uhr, wird der resultierende Text, um Ihre Anwendung über eine Intent gesendet. Um diese Absicht zu erfassen, müssen Sie eine Aktivität und eine Intent-Filter erstellen, die die Absicht entspricht.

Füge hinzu ein TakeVoiceNote Aktivität der AndroidManifest.xml Ihrer Wear App und registrieren eine Intent-Filter die zu erfassen SELF_NOTE Absicht:

Abrufen der Sprachtext

Es ist die einfachste Sache der Welt, die Ausgabe von der Spracherkennungs Aktivität zu erhalten. Sie müssen nur das hinzufügen TakeVoiceNote Aktivität und Abrufen von Text aus der Absicht, etwa so:

public class TakeVoiceNote erstreckt Aktivität {. @Overrideprotected Leere onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState) -String Sprachmemo = getIntent () getStringExtra (Intent.EXTRA_TEXT) -}}

Das ist es! Was auch immer der Benutzer gesagt wurde transkribiert und platziert in die Sprachnotiz Variable.

Jetzt kommt der schwierige Teil ist das, was mit dem Text zu tun.

Öffnen Sie eine Verbindung zu Google Play

Die Voice-Aktion APIs sind recht einfach, aber sie verwenden Sie die Google Play-Service-APIs einrichten müssen, und die sind ein wenig komplizierter zu bedienen.

So fügen Sie Google Play Location Services API für das Projekt, legen Sie die folgende Abhängigkeit in Ihrem build.config Datei:

Abhängigkeiten {compile'com.google.android.gms: Play-Dienste-tragbar: 6.5.87 '}

Als Nächstes fügen Sie folgendes zu Ihrer AndroidManifest.xml:

 android: name ="com.google.android.gms.version" android: Wert ="@ Integer / google_play_services_version"/>

Um eine Verbindung mit dem Google Play-Dienste einzurichten, fügen Sie Folgendes zu Ihrer Aktivität:

// DasGoogleAPIKlient,fürtragbarDienstleistungenGoogleApiClientgoogleApiClient-@Overridepublic Leere onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState) - googleApiClient=neuGoogleApiClient.Builder (this) .addConnectionCallbacks (this) .addOnConnectionFailedListener (this) .addApi (Wearable.API) .bauen()- ...} @Overridepublic Leere onStart () {super.onStart () - googleApiClient.connect () -} @Overridepublic Ungültig OnStop () { googleApiClient.disconnect () -super.onStop () -}

Denken Sie daran, dass die Anwendungs-ID des Telefons App und die Wear App muss gleich sein! Wenn sie unterschiedlich sind, wird die Verbindung nicht hergestellt werden.

Dieser Code erstellt eine neue GoogleApiClient Objekt in Ihrem onCreate () auf die Google Play-Dienste zu verbinden, und dann versucht, es in Ihrem zu verbinden onStart () und ziehen Sie in Ihrem OnStop (). Das GoogleApiClient braucht einen Rückruf Objekt, um es zu informieren, wenn eine Verbindung hergestellt wurde, so dass Sie Rückrufe zu Ihrer Aktivität hinzufügen müssen.

public class TakeVoiceNote erweitert Aktivität Geräte GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener{ @Override ÖffentlichkeitLeereonConnected (BundleconnectionHint){ //In Verbindung gebrachtnachGoogleSpielenDienstleistungen! //DiesistwoherSiewerdenschreibenIhreneuAufgabenachdas //Datenbank. } @Override ÖffentlichkeitLeereonConnectionSuspended (intUrsache){ //DasGoogleSpielenVerbindunghatgewesenunterbrochen. //DeaktivierenirgendeinUIKomponentendassabhängenaufGoogle //APIsbisonConnected ()istnamens. // //DiesBeispieldoesn'tbrauchennachmachenetwasHier. } @Override ÖffentlichkeitLeereonConnectionFailed (ConnectionErgebnis) { //DiesRückrufenistwichtigfürHandhabungFehler //dasskannauftretenwährendVersuchnachverbindenmit //Google. // //FürMehrInformationetwaWienachGriffFehler, //sehen //https://developer.android.com/google/auth/api-client.html }}

Herzliche Glückwünsche! Sie haben jetzt richtig eine Verbindung zu Google Play-Dienste einrichten, die automatisch getrennt wird, wenn Sie Ihre Aktivität gestoppt wird. Der nächste Schritt ist das Telefon zu bitten, eine neue Aufgabe zu erstellen.

eine neue Aufgabe hinzuzufügen, um das Telefon zu fragen

Nun, da Sie eine Verbindung zu Google Play haben, ist der nächste Schritt, um die Stimme Text zu Ihrem Telefon zu senden, so dass das Telefon eine neue Aufgabe zu seiner Datenbank hinzufügen können.

aktualisieren Sie die onConnected () Verfahren Ihrer Tätigkeit eine Nachricht auf Ihr Handy mit dem Inhalt der Stimme Diktat zu senden:

public class TakeVoiceNote erweitert Activityimplements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener {// Der Pfad (wie eine Art URI), die die // Operation identifiziert Sie am Mobilteil ausführen möchten. private static final String PATH_ADD_TASK = "/ addTask"- ... @Override public void onConnected (Bundle Bündel) {Log.d ("TakeVoiceNote", "onConnected") -// Die Spracherkennung Text wird über die übergebenen // AbsichtString Sprachmemo = getIntent (). GetStringExtra ( Intent.EXTRA_TEXT) -// Konvertieren Sie die Zeichenfolge in Bytesfinal byte [] voiceNoteBytes = voiceNote.getBytes (Charset.forName ("utf-8")) -// Eine Liste aller Geräte, die Sie'Re // angeschlossen. Normalerweise wird dies nur sein, Ihre // Telefon. Alle anderen Geräte wird die Nachricht ignorieren.Wearable.NodeApi.getConnectedNodes (googleApiClient) .setResultCallback (neue ResultCallback() { @Override public void onResult (GetConnectedNodesResult Knoten)  {für (Node node: nodes.getNodes ()) { // Nachricht senden das Telefon verlangt, dass // Es die Aufgabe der Datenbank hinzufügen Wearable.MessageApi.sendMessage (googleApiClient,node.getId (),PATH_ADD_TASK,voiceNoteBytes) -}Fertig()- }} ) - }}

Erstellen Sie die neue Aufgabe am Telefon

Das einzige, was noch zu tun ist für die Nachricht auf dem Telefon zu hören, so dass Sie eine neue Aufgabe erstellen können, wenn angefordert. Sie tun dies mit einem einfachen WearableListenerService.

In Ihrem Telefon App erstellen Sie eine neue Klasse mit dem Namen AddTaskWearableListenerService und fügen Sie den folgenden Code:

public class AddTaskWearableListenerService extendsWearableListenerService {// Wenn die Zeichenfolge in TakeVoiceNoteprivate static final String PATH_ADD_TASK match = "/ addTask" - @ Overridepublic Leere onMessageReceived (Messagemessage) {if (PATH_ADD_TASK.equals (messageEvent.getPath ())) {// Erstellen der content Objekt, das speichert alle // der Informationen für den taskString title = new String (messageEvent.getData (), Charset.forName ( "utf-8")) - content Werte = new content () - values.put (COLUMN_TITLE, Titel) -values.put (COLUMN_NOTES, "") -values.put (COLUMN_DATE_TIME, System.currentTimeMillis ().) - // Legen Sie die Aufgabe in die databasegetContentResolver () einfügen (CONTENT_URI, Werte) -}}}

Sie müssen den Service in Ihrem Telefon App AndroidManifest.xml, so fügen Sie folgendes zu Ihrem Anwendungsknoten zu registrieren:

Probieren Sie es aus!

Wenn Sie einen Emulator für Android Wear-Gerät verwenden, müssen Sie es auf Ihrem Android-Handy verbinden möchten.

Sobald das ist und läuft, gehen Sie vor und tippen Sie Ihre Android Wear die Aktionen-Menü aufzurufen, und klicken Sie dann auf die eine Notiz Option nehmen.

image0.png

Wenn Sie eine Uhr Emulator verwenden, dann in Ihrer Antwort geben.

image1.png

Sobald die Note speichert, ziehen Sie die Aufgaben-App auf Ihrem Handy und Sie sollten das neue Element finden Sie unter:

image2.png

Herzliche Glückwünsche! Sie haben diktiert erfolgreich eine Sprachnotiz und gespeichert, um sie Ihren Aufgaben-App.

Es gibt alle Arten von interessanten Dinge, die Sie mit Voice-Regler auf Android und Android Wear Plattformen tun können. Für einige weitere Ideen Besuche die Hinzufügen von Sprachfunktionen und Empfangen von Spracheingabe in einer Mitteilung Artikel über die Android Entwickler-Website. Happy Hacking!

Menü