Un'app di riconoscimento vocale basata su cui sto lavorando funziona bene su tutte le versioni di Android a partire dall'API 8 (Android 2.2).RecognitionListener in JellyBean Si blocca se non si parla immediatamente
Ma su un Nexus S 4G (Android 4.1.1), RecognitionListener semplicemente battuta d'arresto per circa 1 minuto, quindi emettere un ERROR_SERVER attraverso il suo onError() callback.
Se si parla entro 1-2 secondi (di quello onReadyForSpeech), si comporterà correttamente come previsto.
Cosa è cambiato in JellyBean che potrebbe spiegare questo comportamento?
Ancora più importante, c'è un modo per farlo comportarsi come nelle versioni precedenti di Android? (vale a dire continuare ad ascoltare, quindi emettere ERROR_SPEECH_TIMEOUT se non parlato all'interno della predefinita 10 secondi)
Questo SNAFU di rottura della compatibilità con le versioni precedenti sembra familiare ... Recentemente ho trovato un post simile, [senza risposta in vista] (http://stackoverflow.com/q/13670378/576267). Forse è legato a [questo] (http://stackoverflow.com/a/11839541/576267)? In bocca al lupo! –
Sì, questo problema è stato introdotto in Jellybean. Dovresti tenere d'occhio il post collegato, dato che ha una taglia di 100 punti. – scriptocalypse
Vedere il mio lavoro in giro, includendo il silenziamento del segnale acustico su http://stackoverflow.com/questions/14940657/android-speech-recognition-as-a-service-on-android-4-1-4-2/14950616#14950616 –