每个 Wear OS 设备都带有一个麦克风,因此用户可以使用语音与设备交互。您可以将这些交互分为三类
- 录音
- 获取自由形式的语音输入
- 语音操作
录音
在 Wear OS 设备上录音的方式与手机相同。请参阅MediaRecorder 文档,了解有关在 Android 上录音的更多信息。您还可以查看 GitHub 上的 Wear Speaker 示例中的示例实现。
获取自由形式的语音输入
调用系统内置的语音识别器 activity,以获取用户的语音输入。使用语音输入发送消息或执行搜索。
在您的应用中,使用 ACTION_RECOGNIZE_SPEECH
操作调用 startActivityForResult()
。这将启动语音识别 activity,然后您可以在 onActivityResult()
中处理结果。
以下代码示例展示了如何启动和处理语音识别 activity。
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 应用之外,语音操作和助理应用操作均不受支持。请阅读有关针对中国的语音操作支持的更多信息。