Следуя подсказке в этом ответе, я вызвал setEngineByPackageName прямо в onActivityResult()
, когда requestCode == REQ_TTS_STATUS_CHECK && TextToSpeech.Engine.CHECK_VOICE_DATA_PASS
:
tts = new TextToSpeech(this, this);
tts.setEngineByPackageName("com.ivona.tts.voicebeta.eng.usa.kendra");
Но независимо от того, устанавливаю я или снимаю флажок Always use my settings
в настройках преобразования текста в речь, я всегда получаю движок pico по умолчанию!
Да, я намеренно установил механизм pico по умолчанию, чтобы я мог протестировать его переопределение с помощью вышеупомянутого совета. Но этот метод API, похоже, вообще не работает, или... я что-то упустил?
(Я знаю, что setEngineByPackageName устарел, поскольку он не информирует вызывающую сторону об инициализации механизма TTS, но мне нужно поддерживать API 8, поэтому этот метод — мой единственный вариант на данный момент)