TTS - CHECK_VOICE_DATA_FAIL - Comprobar motor disponible

Tengo un problema extraño con el motor TTS y no puedo entender por qué / dónde está mi error. Se busca por horas una solución pero sin ningún resultado mencionable.

Cuando estoy usando estoCódigo demo API Todo funciona bien y puedo escuchar la voz en todos los idiomas instalados.

Pero cuando estoy comprobando poreste método Obtengo CHECK_VOICE_DATA_FAIL como un código de retorno para los motores TTS personalizados (que necesito para todos los idiomas necesarios, el estándar de Google no es suficiente).

¿Que me estoy perdiendo aqui? ¿Cómo puedo verificar la disponibilidad de los motores TTS? Sé que esto no es necesariamente un problema de código pero, para otros programas, parece que está funcionando.

Instalé algunas otras aplicaciones desde elSitio web de SVox y estos parecen funcionar en todos mis dispositivos, mientras que el código siguiente falla.

Como ejemplo,TalkToMeClassic Está comprobando la disponibilidad del motor y está funcionando.

¿Qué se hace diferente aquí?

Aquí está mi código exacto (que es una copia del artículo):

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Intent checkIntent = new Intent();
    checkIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);
    startActivityForResult(checkIntent, 0x99);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == 0x99) {
        if (resultCode == TextToSpeech.Engine.CHECK_VOICE_DATA_PASS) {
            // success, create the TTS instance
            mTts = new TextToSpeech(this, this);
        } else {
            Log.e("TTS","Missing Data:" + resultCode );
            // missing data, install it
            Intent installIntent = new Intent();
            installIntent.setAction(
                TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA);
            startActivity(installIntent);
        }
    }
}

Respuestas a la pregunta(1)

Su respuesta a la pregunta