TextToSpeech.setEngineByPackageName () devuelve el éxito incluso cuando el paquete no está disponible

Después de lograr que TextToSpeech.setEngineByPackageName () trabaje gracias a esta respuesta , ahora estoy teniendo el problema "opuesto":

tts.setEngineByPackageName("com.ivona.tts.voicebeta.eng.usa.kendra"); Siempre devuelve TextToSpeech.SUCCESS , incluso cuando ese paquete no está instalado en absoluto en el dispositivo.

Dado que el paquete no está disponible en el dispositivo, TTS procede a hablar con el pico predeterminado de Android, que se espera, pero no entiendo por qué setEngineByPackageName() devuelve SUCCESS.

¿Cómo podría ser esto?

One Solution collect form web for “TextToSpeech.setEngineByPackageName () devuelve el éxito incluso cuando el paquete no está disponible”

Para el beneficio de todos, estoy publicando la respuesta proporcionada por @Nikolay Elenkov en una pregunta diferente (pero relacionada):

Llamar setEngineByPackageName () cuando el paquete no existe no es una buena idea. En su lugar, compruebe si está instalado y no intente utilizarlo si no está instalado :

 boolean isPackageInstalled(String packageName) { PackageManager pm = context.getPackageManager(); try { PackageInfo pi = pm.getPackageInfo(packageName, 0); return pi != null; } catch (NameNotFoundException e) { return false; } } 

Un buen ejemplo de cómo se hace esto se puede ver en:

http://code.google.com/p/wwwjdic/source/browse/branches/2.0/wwwjdic/src/org/nick/wwwjdic/TtsManager.java

  • UtteranceProgressListener no funciona para Android TTS
  • Android Texto a voz añadir texto de voz continuamente
  • ¿Cómo interpretar audiblemente la pronunciación IPA en Android?
  • TTS android 4.1 jellybean
  • La interfaz de usuario de texto a voz es un android lento
  • Resalte la palabra actual que el motor TTS está hablando
  • Problemas con TTS en el Samsung Galaxy S3
  • Referencia no resuelta en el anonimo oyente de Kotlin
  • Pausa tono del teléfono mientras habla a través de texto a voz y luego reanudar
  • Agrega mi motor TTS a Android TTS Serivce como SAPI
  • KitKat tarda 6 segundos más que Froyo para reaccionar a TextToSpeech.speak () en primera llamada
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.