Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

Apps für Android Wear Grundkurs

Spracheingabe entgegennehmen

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Einfach in die Uhr sprechen und die Antwort des Smartphones auf dem Display sehen? Wie das geht, sehen Sie in diesem Video.

Transkript

Um in Ihrer App Spracheingaben entgegennehmen und auf der Smartwatch weiterverarbeiten zu können, steht Ihnen schon eine vorgefertigte Activity zur Verfügung. Die bietet die volle Funktionalität an, um Sprache entgegennehmen und an den Aufrufer der Activity zurückgeben zu können. Wie das genau funktioniert, zeige ich in meinem Projekt VoiceApp. Das besteht aus zwei Modulen: Mobile und Wear. Ich bin hier im Wear-Modul in der Klasse MainActivity. Die Activity, die ich am anderen Ende aufrufen möchte, ist ein Voice Recognizer. Sie soll ausgelöst werden, wenn der Anwender auf meine MainActivity tippt. Ich hänge also einen OnClickListener an mein MainLayout und das mache ich in der OnCreate-Methode. Eine Referenz auf meinen MainLayoutContainer habe ich bereits, also kann ich die direkt verwenden. Die Methode heißt setOnClickListener. Und sie nimmt ein OnClickListener. Ich schreibe hier also: new OnClickListener Hier wird jetzt also eine Instanz der Klasse OnClickListener übergeben. In die OnClick-Methode muss ich jetzt reinschreiben, was passieren soll. Ich packe das in eine separate Methode, die ich hier nur aufrufe. Ich nenne sie displaySpeechRecognizer. Die gibt's natürlich noch nicht. Deswegen lasse ich mir sie erzeugen. Ich achte darauf, dass sie auch in die MainActivity reinkommt, nicht in die innere Klasse. Da ist sie. Zurückgeben muss sie nichts. Jetzt können wir den eigentlichen Code schreiben. Um eine andere Activity auszulösen, erstellen wir uns typischerweise einen Intent, der dann von einem Intent-Filter entgegengenommen und weitergeleitet wird. Genau so machen wir das hier auch. Ich schreibe also Intent intent = new Intent Für die Action übergebe ich eine Konstante der Klasse RecognizerIntent. Die Konstante heißt ActionRecognizedSpeech. Ich möchte also eine Activity auslösen, die in der Lage ist, Sprache zu erkennen. Jetzt gebe ich dem Empfänger noch eine zusätzliche Information mit, nämlich mit intent.putExtra. Sowohl Key als auch Value kommen aus der Gruppe RecognizerIntent. Also ... RecognizerIntent. Der Key heißt Extra_Language_Model. Und der Value ... Language_Model_Free_Form. Wir machen hier also keinerlei Vorgaben oder Einschränkungen, für die Spracherkennung. Jetzt kann ich die Activity starten. Da ich einen Rückgabewert haben möchte, nämlich den erkannten Text, rufe ich hier auf: startActivityForResult. startActivity ... ... ForResult. Ich übergebe meinen Intent. Als zweites brauche ich einen requestCode, damit ich später auch die richtige Antwort bearbeite. Diesen requestCode nenne ich .. Speech_Request_Code. Die Konstante gibt es noch nicht. Also lege ich sie an. ALT-Enter Konstante anlegen, Vom Typ Int. Als Wert gebe ich an: 1001. Das ist also der Code, der beim Starten übergeben wird und der auch in der Antwort enthalten sein wird. Das funktioniert alles genau so wie mit den Activities, die Sie selbst schreiben. Wir brauchen als nächstes eine Methode, und eine Activity Result. Die setze ich hier drunter. Den Aufruf der Oberklassenmethode brauche ich hier nicht. Das kann ich löschen und direkt mit der Bearbeitung beginnen. Wie immer in dieser Callback-Methode schauen Sie zuerst mal, ob die Antwort auch von der richtigen Activity kommt. Also ... if (requestCode = Speech_Request_Code Und wenn ja, ob auf der anderen Seite alles in Ordnung war. Also resultCode = Result_OK. Es muss natürlich auch hier vorne ein doppeltes Gleichheitszeichen sein. Wenn das beides passt, können wir den Wert entgegennehmen. Die Antwort kommt als Liste von Strings. Das heißt, wir holen uns die aus Data mit getStringArrayListExtra Und der Name des Keys ist auch wieder aus RecognizerIntent Extra_Results. Das Ergebnis weise ich einer lokalen Variablen zu. Ich nenne sie Results. Ich ändere es hier vorn noch auf den Interfacetyp List. Den ich natürlich importieren muss. Ich vereinfache das hier jetzt mal und gehe davon aus, dass die Liste genau ein Element enthält. Das hole ich mir raus. Ich nenne es spokenText. Das wäre dann also results.get(0). Jetzt möchte ich das Ergebnis noch anzeigen. In meinem Layout habe ich dafür hier einen Textview. Dieser Textview hat die ID textView. Hier schreibe ich jetzt also den Text rein, der vom Speech Recognizer zurückgekommen ist. Ich hole mir den Textview, nenne ihn TV. Ich bekomme ihn über findView bei ID R.id.textView So, jetzt muss ich das noch casten. Dort schreibe ich den Text rein, mit tv.setText. Ich beginne mit: Du hast gesagt, dann ein Zeilenvorschub, und hintendran den gesprochenen Text. So. Das wär's. Jetzt sollte folgendes passieren: Der Benutzer tippt auf die MainActivity. Dann geht eine Spracherkennungs-Activity auf. Der Benutzer spricht etwas hinein und wenn er fertig ist, erscheint das, was er gesprochen hat, auf dem Display. Mit einem vorangestellten: Du hast gesagt: Ich kann die Anwendung jetzt also starten. Achten Sie darauf, dass Sie oben das Wear-Modul ausgewählt haben, bevor Sie den Play-Knopf drücken. Schauen wir nun auf die Smartwatch. Es muss ein echtes Gerät sein, da ein Emulator ja keine Spracheingaben entgegennehmen kann. Diese Uhr ist außerdem mit einem echten Smartphone verbunden, das wiederum auf das Internet zugreifen kann. Das, was Sie in Ihre Uhr hineinsprechen, geht zum Smartphone und von da zu den Google-Servern. Dort findet dann die eigentliche Spracherkennung statt. Das Ergebnis geht zurück zum Smartphone und von dort direkt auf Ihre Uhr. Ich starte jetzt mal die App. Ich tippe hier drauf. App starten. Jetzt sehe ich den Startbildschirm. Ich tippe drauf und komme zur Spracherkennung. Wie Sie sehen, funktioniert die sehr gut. Ich sag nochmal etwas. Das klappt natürlich nicht immer 100%-ig. Und ein weiterer Versuch. Sie sehen, die Spracheingabe funktioniert. So! Nun haben Sie gesehen, wie Sie in Ihrer AndroidWearApp Spracheingaben entgegennehmen können. Dabei dient die Uhr nicht nur als Mikrofon, das den Datenstrom einfach nur ans Smartphone durchreicht, sondern Sie können die Spracheingabe entgegennehmen und direkt auf der Smartwatch weiterverarbeiten.

Apps für Android Wear Grundkurs

Erstellen Sie Anwendungen für das Internet der Dinge mit Android Wear.

2 Std. 39 min (29 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Hersteller:
Software:
Exklusiv für Abo-Kunden
Erscheinungsdatum:19.08.2016

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!