По разным причинам мне нужно использовать простой SpeechRecognizer
API вместо более простого RecognizerIntent
(RECOGNIZE_SPEECH) активность .
Это означает, среди прочего, что янужно обработать RecognitionListener.onError()
себя.
В ответ на некоторые ошибки я просто хочу заново начать прослушивание.Это выглядит просто, но когда я просто вызываю SpeechRecognizer.startListening()
при ошибке, иногда кажется, что это вызывает две разные ошибки:
ERROR/ServerConnectorImpl(619): Previous session not destroyed
и
"concurrent startListening received - ignoring this call"
Что намекает на то, что я должен был сделать несколькоочистка перед попыткой вызова SpeechRecognizer.startListening()
снова.
Если это так, это означает, что при ошибке RecognitionListener прослушивание не останавливается автоматически и / или не отменяется.
Также возможно, чтонекоторые ошибки останавливают / отменяют прослушивание, а другие - нет.На самом деле существует только 9 SpeechRecognizer ошибок:
- ERROR_NETWORK_TIMEOUT
- ERROR_NETWORK
- ERROR_AUDIO
- * ERROR_SERVER
- ERROR_SPEECH_TIMEOUT
- ERROR_NO_MATCH
- ERROR_RECOGNIZER_BUSY
- ERROR_INSUFFICIENT_PERMISS______ * * * * * * * * * * * * * * * * * * * * * * 10 * * * * * * * 10 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 10 *.отменяет прослушивание, а какие нет, знаете ли вы, исходя из своего опыта, какие ошибки требуют очистки (и в какой степени) до попытки
SpeechRecognizer.startListening()
снова?