모든 Wear OS 기기에는 마이크가 제공되므로 사용자가 음성으로 기기와 상호작용할 수 있습니다. 상호작용 유형은 세 가지로 나눌 수 있습니다.
- 오디오 녹음
- 자유 형식 음성 입력 얻기
- 음성 액션
오디오 녹음
Wear OS 기기에서의 오디오 녹음은 휴대전화와 동일한 방식으로 이뤄집니다. Android에서 오디오를 녹음하는 방법에 관한 자세한 내용은 MediaRecorder 문서를 참고하세요. GitHub의 Wear 스피커 샘플에서 샘플 구현을 확인해도 됩니다.
자유 형식 음성 입력 얻기
시스템의 내장 음성 인식기 활동을 호출하여 사용자로부터 음성 입력을 얻습니다. 음성 입력을 사용하여 메시지를 보내거나 검색을 실행합니다.
앱에서 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 앱을 제외하고 현재 음성 액션과 어시스턴트 앱 작업은 지원되지 않습니다. 중국의 음성 액션 지원에 관해 자세히 알아보세요.