每部 Wear OS 裝置都有麥克風,可讓使用者透過語音和裝置互動。互動方式可分為三種類型:
- 錄音
- 取得任意形式的語音輸入內容
- 語音操作
錄音
在 Wear OS 裝置上錄音的運作方式和在手機上相同。請參閱 MediaRecorder 說明文件,進一步瞭解如何在 Android 裝置上錄音。您也可以前往 GitHub 參閱 Wear Speaker 的實作範例。
取得任意形式的語音輸入內容
呼叫系統內建的 Speech Recognizer 活動,取得使用者的語音輸入內容。使用語音輸入內容,即可傳送訊息或執行搜尋。
在應用程式中使用 ACTION_RECOGNIZE_SPEECH
動作呼叫 startActivityForResult()
。這會啟動語音辨識活動,您接著可以在 onActivityResult()
中處理結果。
以下程式碼範例將說明如何啟動和管理語音辨識活動。
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 ) } }
語音操作
中國境內除了 Wear OS 應用程式之外,目前尚未支援語音指令和 Google 助理應用程式動作。詳情請參閱「中國版語音指令支援」。