Hi
I faced with issue on samsung watch 4 with speech listener.
Listener Service
class SpeechListener : LifecycleService(), RecognitionListener {
private lateinit var speechRecognizer: SpeechRecognizeroverride fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int { speechRecognizer = SpeechRecognizer.createSpeechRecognizer(this, ComponentName.unflattenFromString("com.google.android.googlequicksearchbox/com.google.android.voicesearch.serviceapi.GoogleRecognitionService") ) speechRecognizer = SpeechRecognizer.createOnDeviceSpeechRecognizer(this) speechRecognizer.setRecognitionListener(this) val voice = Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH) voice.putExtra(RecognizerIntent.EXTRA_LANGUAGE, Locale.getDefault()) voice.putExtra( RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM ) voice.putExtra(RecognizerIntent.EXTRA_PREFER_OFFLINE, true) speechRecognizer.startListening(voice) startForeground(this) return super.onStartCommand(intent, flags, startId) } override fun onResults(results: Bundle?) { val matches = results?.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION) Log.i(">>>>>>>>> SPOKEN TEXT ", matches!![0]) }
}
Main Activity
class MainActivity : AppCompatActivity() {
private lateinit var binding: ActivityMainBindingoverride fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = DataBindingUtil.setContentView(this, R.layout.activity_main) val navController = findNavController(R.id.nav_host_fragment_content_main) val speechIntent = Intent(this, SpeechListener::class.java) startForegroundService(speechIntent) }
}
AndroidManifest.xml
queries
package android:name=“com.google.android.googlequicksearchbox”/
intent
action android:name=“android.speech.RecognitionService” /
/intent
/queries
I get error: E/SpeechRecognizer: no selected voice recognition service
Some suggestions, please)