Każde urządzenie z Wear OS ma mikrofon, więc użytkownicy mogą głosowo reagować na: urządzenia. Możesz je podzielić na 3 rodzaje interakcji:
- Nagrywanie dźwięku
- Korzystaj z metody rozpoznawania mowy
- Komendy głosowe
Nagrywanie dźwięku
Nagrywanie dźwięku na urządzeniu z Wear OS działa tak samo jak na telefonie. Zapoznaj się z Dokumentacja MediaRecorder, w której znajdziesz więcej informacji nagrywania dźwięku na Androidzie. Możesz też zobaczyć przykładową implementację w Wear – przykład z głośnika w GitHubie.
Korzystaj z metody rozpoznawania mowy
Wywoływanie wbudowanej aktywności systemu rozpoznawania mowy w celu uzyskania od użytkowników danych głosowych. Użyj mowy dane wejściowe do wysyłania wiadomości lub wyszukiwania.
W aplikacji zadzwoń pod numer startActivityForResult()
przy użyciu operatora ACTION_RECOGNIZE_SPEECH
działania. Spowoduje to rozpoczęcie działania rozpoznawania mowy. Później możesz obsługiwać wyniki w naszych poleceniach.
onActivityResult()
Poniższy przykładowy kod pokazuje, jak rozpocząć i obsługiwać aktywność związaną z rozpoznawaniem mowy.
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 ) } }
Komendy głosowe
Komendy głosowe i komendy Asystenta nie są obecnie obsługiwane (z wyjątkiem aplikacji na Wear OS w: Chiny. Więcej informacji o Obsługa komend głosowych dla Chin.