Spracheingabe

Jedes Wear OS-Gerät ist mit einem Mikrofon ausgestattet. So können Nutzer per Sprachbefehl mit dem . Sie können diese in drei Arten von Interaktionen unterteilen:

  • Audio aufnehmen
  • Spracheingabe im freien Format abrufen
  • Sprachbedienung

Audio aufnehmen

Das Aufzeichnen von Audio mit einem Wear OS-Gerät funktioniert genauso wie auf einem Smartphone. Weitere Informationen finden Sie im In der MediaRecorder-Dokumentation erfahren Sie mehr über für die Audioaufnahme auf Android-Geräten. Sie können sich auch eine Beispielimplementierung in der Beispiel für Wear-Lautsprecher auf GitHub.

Spracheingabe im freien Format abrufen

Sie rufen die im System integrierte Spracherkennungsaktivität auf, um Spracheingaben von Nutzern zu erhalten. Spracheingabe verwenden um Nachrichten zu senden oder Suchvorgänge durchzuführen.

Rufen Sie in Ihrer App startActivityForResult() auf. mit der ACTION_RECOGNIZE_SPEECH Aktion ausführen. Dadurch wird die Spracherkennung gestartet und Sie können das Ergebnis in onActivityResult()

Das folgende Codebeispiel zeigt, wie eine Spracherkennungsaktivität gestartet und verarbeitet wird.

var textForVoiceInput by remember { mutableStateOf("") }

val voiceLauncher =
    rememberLauncherForActivityResult(
        ActivityResultContracts.StartActivityForResult()
    ) { activityResult ->
        // This is where you process the intent and extract the speech text from the intent.
        activityResult.data?.let { data ->
            val results = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS)
            textForVoiceInput = results?.get(0) ?: "None"
        }
    }

val scrollState = rememberScrollState()

ScreenScaffold(scrollState = scrollState) {
    // rest of implementation here
    // ...
    Column(
        // rest of implementation here
        // ...

        // Create an intent that can start the Speech Recognizer activity
        val voiceIntent: Intent = Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH).apply {
            putExtra(
                RecognizerIntent.EXTRA_LANGUAGE_MODEL,
                RecognizerIntent.LANGUAGE_MODEL_FREE_FORM
            )

            putExtra(
                RecognizerIntent.EXTRA_PROMPT,
                stringResource(R.string.voice_text_entry_label)
            )
        }
        // Invoke the process from a chip
        Chip(
            onClick = {
                voiceLauncher.launch(voiceIntent)
            },
            label = stringResource(R.string.voice_input_label),
            secondaryLabel = textForVoiceInput
        )
    }
}

Sprachbedienung

Die Sprachbedienung und Assistant App Actions werden derzeit nicht unterstützt, mit Ausnahme von Wear OS-Apps in China Weitere Informationen zu Unterstützung für die Sprachbedienung für China.