Как программно изменить двигатель по умолчанию TTS

В дополнение к движку Pico TTS, который поставляется с Android, у меня установлен еще один двигатель TTS. Я могу изменить, который по умолчанию используется системой - вручную:

Settings > Voice input & output > Text-to-speech settings > Default Engine

Я хотел бы иметь возможность делать это программно из моего приложения. Возможно ли это?

Если да, то как я могу это сделать?

Ответы

Ответ 1

Вы не можете изменить двигатель по умолчанию. Однако вы можете изменить используемый вами движок, вызвав TextToSpeech.setEngineByPackageName() (доступный с версии 2.2) или используя конструктор, который принимает пакет движка параметр (доступен в ICS, поэтому не очень полезен прямо сейчас).

Перед ICS также нет API, чтобы узнать, какие модули установлены, поэтому вам нужно заранее знать другой пакет, чтобы он мог его использовать.

Ответ 2

Вышеприведенный ответ более недействителен, так как метод устарел. Android API 14 и выше вам нужно использовать конструктор для установки двигателя.

TextToSpeech(Context context, TextToSpeech.OnInitListener listener, String engine)

Строка "engine" - это имя пакета движка TTS, который вы хотите использовать.