Input vocale

Ogni dispositivo Wear OS è dotato di un microfono che consente agli utenti di interagire con il dispositivo con la voce. Puoi suddividerli in tre tipi di interazioni:

  • Registra l'audio
  • Usa input vocale in formato libero
  • Azioni vocali

Registra l'audio

La registrazione di audio su un dispositivo Wear OS funziona come su uno smartphone. Per scoprire di più sulla registrazione di audio su Android, consulta la documentazione di MediaRecorder. Puoi anche dare un'occhiata a un'implementazione di esempio nell'esempio di Wear Speaker su GitHub.

Usa input vocale in formato libero

Consente di chiamare l'attività di riconoscimento vocale integrata del sistema per ricevere input vocali dagli utenti. Utilizza i comandi vocali per inviare messaggi o eseguire ricerche.

Nell'app, chiama startActivityForResult() utilizzando l'azione ACTION_RECOGNIZE_SPEECH. Questa operazione avvia l'attività di riconoscimento vocale e potrai quindi gestire il risultato in onActivityResult().

Il seguente esempio di codice mostra come avviare e gestire un'attività di riconoscimento vocale.

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
        )
    }
}

Azioni vocali

Al momento le Azioni vocali e le Azioni app dell'assistente non sono supportate, ad eccezione delle app per Wear OS in Cina. Scopri di più sul supporto di Azioni vocali per la Cina.