語音輸入
透過集合功能整理內容
你可以依據偏好儲存及分類內容。
每部 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 助理應用程式動作。詳情請參閱「中國版語音指令支援」。
這個頁面中的內容和程式碼範例均受《內容授權》中的授權所規範。Java 與 OpenJDK 是 Oracle 和/或其關係企業的商標或註冊商標。
上次更新時間:2025-09-04 (世界標準時間)。
[[["容易理解","easyToUnderstand","thumb-up"],["確實解決了我的問題","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["缺少我需要的資訊","missingTheInformationINeed","thumb-down"],["過於複雜/步驟過多","tooComplicatedTooManySteps","thumb-down"],["過時","outOfDate","thumb-down"],["翻譯問題","translationIssue","thumb-down"],["示例/程式碼問題","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["上次更新時間:2025-09-04 (世界標準時間)。"],[],[],null,["Every Wear OS device comes with a microphone, so users can use their voice to interact with the\ndevice. You can divide these into three types of interactions:\n\n- Record audio\n- Get free-form speech input\n- Voice actions\n\nRecord audio\n\n\nRecording audio on a Wear OS device works the same way as it would on a phone. Refer to the\n[MediaRecorder documentation](/guide/topics/media/mediarecorder) to learn more about\nrecording audio on Android. You can also look at a sample implementation in the\n[Wear Speaker sample](https://github.com/android/wear-os-samples/tree/main/WearSpeakerSample)\non Github.\n\nGet free-form speech input\n\n\nCall the system's built-in Speech Recognizer activity to get speech input from users. Use speech\ninput to send messages or perform searches.\n\n\nIn your app, call [startActivityForResult()](/reference/android/app/Activity#startActivityForResult(android.content.Intent, int))\nusing the [ACTION_RECOGNIZE_SPEECH](/reference/android/speech/RecognizerIntent#ACTION_RECOGNIZE_SPEECH)\naction. This starts the speech recognition activity, and you can then handle the result in\n[onActivityResult()](/reference/android/app/Activity#onActivityResult(int, int, android.content.Intent)).\n\n\nThe following code sample shows how to start and handle a speech recognition activity. \n\n```kotlin\nvar textForVoiceInput by remember { mutableStateOf(\"\") }\n\nval voiceLauncher =\n rememberLauncherForActivityResult(\n ActivityResultContracts.StartActivityForResult()\n ) { activityResult -\u003e\n // This is where you process the intent and extract the speech text from the intent.\n activityResult.data?.let { data -\u003e\n val results = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS)\n textForVoiceInput = results?.get(0) ?: \"None\"\n }\n }\n\nval scrollState = rememberScrollState()\n\nScreenScaffold(scrollState = scrollState) {\n // rest of implementation here\n // ...\n Column(\n // rest of implementation here\n // ...\n\n // Create an intent that can start the Speech Recognizer activity\n val voiceIntent: Intent = Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH).apply {\n putExtra(\n RecognizerIntent.EXTRA_LANGUAGE_MODEL,\n RecognizerIntent.LANGUAGE_MODEL_FREE_FORM\n )\n\n putExtra(\n RecognizerIntent.EXTRA_PROMPT,\n stringResource(R.string.voice_text_entry_label)\n )\n }\n // Invoke the process from a chip\n Chip(\n onClick = {\n voiceLauncher.launch(voiceIntent)\n },\n label = stringResource(R.string.voice_input_label),\n secondaryLabel = textForVoiceInput\n )\n }\n}https://github.com/android/snippets/blob/3d5181b4813a17a1c236b134cc207dfee625885c/wear/src/main/java/com/example/wear/snippets/voiceinput/VoiceInputScreen.kt#L73-L133\n```\n\nVoice Actions\n\nVoice Actions and Assistant App Actions aren't supported at this time except for Wear OS apps in\nChina. Read more about\n[Voice Actions support\nfor China](/training/wearables/apps/creating-app-china#voice-actions-support)."]]