Jedes Wear OS-Gerät ist mit einem Mikrofon ausgestattet, sodass Nutzer per Sprachbefehl mit dem Gerät interagieren können. Sie können diese in drei Arten von Interaktionen unterteilen:
- Audio aufnehmen
- Spracheingabe im freien Format abrufen
- Sprachbedienung
Audio aufnehmen
Audioaufnahmen auf einem Wear OS-Gerät funktionieren genauso wie auf einem Smartphone. Weitere Informationen zur Audioaufzeichnung unter Android findest du in der MediaRecorder-Dokumentation. Im Wear-Speaker-Beispiel auf GitHub können Sie sich auch eine Beispielimplementierung ansehen.
Spracheingabe im freien Format abrufen
Rufen Sie die integrierte Spracherkennung des Systems auf, um Spracheingaben von Nutzern zu erhalten. Verwenden Sie die Spracheingabe, um Nachrichten zu senden oder Suchanfragen durchzuführen.
Rufen Sie in Ihrer App startActivityForResult()
mit der Aktion ACTION_RECOGNIZE_SPEECH
auf. Dadurch wird die Spracherkennung gestartet und das Ergebnis kann dann in onActivityResult()
verarbeitet werden.
Das folgende Codebeispiel zeigt, wie eine Spracherkennungsaktivität gestartet und verarbeitet wird.
Kotlin
private const val SPEECH_REQUEST_CODE = 0 ... // Create an intent that can start the Speech Recognizer activity private fun displaySpeechRecognizer() { val intent = Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH).apply { putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM) } // This starts the activity and populates the intent with the speech text. startActivityForResult(intent, SPEECH_REQUEST_CODE) } // This callback is invoked when the Speech Recognizer returns. // This is where you process the intent and extract the speech text from the intent. override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent) { if (requestCode == SPEECH_REQUEST_CODE && resultCode == Activity.RESULT_OK) { val spokenText: String? = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS).let { results -> results[0] } // Do something with spokenText. } super.onActivityResult(requestCode, resultCode, data) }
Java
private static final int SPEECH_REQUEST_CODE = 0; // Create an intent that can start the Speech Recognizer activity private void displaySpeechRecognizer() { Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM); // This starts the activity and populates the intent with the speech text. startActivityForResult(intent, SPEECH_REQUEST_CODE); } // This callback is invoked when the Speech Recognizer returns. // This is where you process the intent and extract the speech text from the intent. @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == SPEECH_REQUEST_CODE && resultCode == RESULT_OK) { List<String> results = data.getStringArrayListExtra( RecognizerIntent.EXTRA_RESULTS); String spokenText = results.get(0); // Do something with spokenText. } super.onActivityResult(requestCode, resultCode, data); }
Sprachbedienung
Die Sprachbedienung und Assistant-App-Aktionen werden derzeit nicht unterstützt, mit Ausnahme von Wear OS-Apps in China. Weitere Informationen zur Unterstützung der Sprachbedienung für China