Ses girişi

Her Wear OS cihazın bir mikrofonu vardır. Böylece kullanıcılar, seslerini kullanarak cihazla etkileşimde bulunabilirler. Bunları üç etkileşim türüne ayırabilirsiniz:

  • Ses kaydetme
  • Serbest biçimli konuşma girişi alma
  • Sesli İşlemler

Ses kaydetme

Wear OS cihazda ses kaydetme, telefondakiyle aynı şekilde çalışır. Android'de ses kaydetme hakkında daha fazla bilgi edinmek için MediaRecorder belgelerine bakın. Ayrıca GitHub'daki Wear Hoparlör örneğindeki örnek uygulamaya da bakabilirsiniz.

Serbest biçimli konuşma girişi alma

Kullanıcılardan konuşma girişi almak için sistemin yerleşik Konuşma Tanıyıcı etkinliğini çağırın. Mesaj göndermek veya arama yapmak için konuşma girişini kullanın.

Uygulamanızda, ACTION_RECOGNIZE_SPEECH işlemini kullanarak startActivityForResult() öğesini çağırın. Bu işlem, konuşma tanıma etkinliğini başlatır. Ardından sonucu onActivityResult() olarak işleyebilirsiniz.

Aşağıdaki kod örneğinde, bir konuşma tanıma etkinliğinin nasıl başlatılacağı ve işleneceği gösterilmektedir.

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
        )
    }
}

Sesli İşlem

Sesli İşlemler ve Asistan Uygulama İşlemleri şu anda, Çin'deki Wear OS uygulamaları hariç desteklenmemektedir. Çin için Sesli İşlemler desteği hakkında daha fazla bilgi edinin.