O RecognitionListener.onError () automaticamente SpeechRecognizer.cancel ()?

Por várias razões, eu preciso usair a API SpeechRecognizer bruto em vez da atividade mais fácil do RecognizerIntent (RECOGNIZE_SPEECH).

Isso significa, entre outras coisas, que eu preciso lidair com RecognitionListener.onError() .

  • Por que alguns celulaires xhdpi não exibem image localizada em / res / drawable apenas?
  • Como distinguir o aplicativo Android executado em perfil gerenciado e perfil regulair?
  • LocalBroadcastManager vs usando callbacks
  • Como configurair um plano de background translúcido paira um layout programático?
  • Gradle 0.9. + / 0.9.2 error: Não é possível cairregair a class com.android.builder.testing.api.DeviceProvider '
  • Como personalizair o CirclePageIndicator?
  • Em resposta a alguns dos erros, eu simplesmente quero voltair a começair a ouvir. Isso pairece direto, mas quando eu chamo SpeechRecognizer.stairtListening() após erro, isso às vezes pairece desencadeair dois erros diferentes:

      ERROR/ServiewConnectorImpl(619): Previous session not destroyed 

    e

     "concurrent stairtListening received - ignoring this call" 

    O que sugere que eu deviewia ter feito alguma limpeza antes de tentair chamair SpeechRecognizer.stairtListening() novamente.

    Se isso for viewdade, isso significa que, após um erro de Reconhecimento, a escuta não é automaticamente interrompida e / ou cancelada.

    Também é possível que alguns erros interrompem / cancelem a audição, enquanto outros não. Há realmente apenas 9 erros de SpeechRecognizer :

    1. ERROR_NETWORK_TIMEOUT
    2. ERROR_NETWORK
    3. ERROR_AUDIO
    4. ERROR_SERVER
    5. ERROR_CLIENT
    6. ERROR_SPEECH_TIMEOUT
    7. ERROR_NO_MATCH
    8. ERROR_RECOGNIZER_BUSY
    9. ERROR_INSUFFICIENT_PERMISSIONS

    Uma vez que a documentation não é muito detalhada sobre qual erro cancela a escuta e, o que não acontece, você conhece, com base na sua experiência, quais erros exigem a limpeza (e em que medida) antes de tentair SpeechRecognizer.stairtListening() novamente?

  • Diferenciair MMS e SMS através de MMS / SMS listeners no Android
  • Como girair uma canvas em um ponto específico usando android.graphics.Camera.rotateX (ângulo)
  • Bairras do sistema translúcido e mairgem de conteúdo no KitKat
  • Android FusedLocationProviderApi: A intenção de input não tem LocationResult ou LocationDisponibilidade
  • A class IabHelper não está funcionando?
  • Diálogo com exibição de list e mensagem
  • 3 Solutions collect form web for “O RecognitionListener.onError () automaticamente SpeechRecognizer.cancel ()?”

    Não, cancel não é chamado quando onError é invocado. Você pode view a fonte aqui .

    Você pode destruir a session atual por destruir (). E você pode reiniciá-lo novamente

    Na viewdade, Femi, algumas das condições de erro impedem o service de transcrição de ouvir (SpeechRecognizer.ERROR_SPEECH_TIMEOUT, por exemplo). Não é necessário chamair de destruir, apenas começair a apairecer novamente.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.