Показать настройки преобразования текста в речь в моем приложении


Я реализовал поддержку TTS для чтения текстовых строк в моем приложении, и это работает просто отлично. Я хочу добиться того, чтобы пользователь мог открывать настройки для TTS и вносить изменения в соответствии со своим желанием.

Вот мой код

Intent intent = new Intent();
intent.setAction("com.android.settings.TTS_SETTINGS");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
DetailActivity.this.startActivity(intent);

Но мое приложение аварийно завершает работу при запуске этого кода. Я использую android 4.1.2 устройства.

У кого-нибудь есть предложения?

Заранее благодарю.

1 2

1 ответ:

Вы можете использовать это действие намерения для проверки предпочтения TTS

private void checkTTSAvailability() {
    Intent checkTtsIntent = new Intent();
    checkTtsIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);
    startActivityForResult(checkTtsIntent, TTS_DATA_CHECK_CODE);
}

И обрабатывать результат onActivityResult (int requestCode, int resultCode, Intent data)

    if(requestCode == TTS_DATA_CHECK_CODE){
        // Success! File has already been installed
        if(resultCode == TextToSpeech.Engine.CHECK_VOICE_DATA_PASS){
            mTts = new TextToSpeech(getActivity(), this);
        }else{
            // fail, attempt to install tts
            Intent installTts = new Intent();
            installTts.setAction(TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA);
            startActivity(installTts);
        }
    }

Или если вы просто хотите открыть настройки, просто используйте это действие

Intent intent = new Intent();
intent.setAction("com.android.settings.TTS_SETTINGS");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
this.startActivity(intent);

О том, что сбой его, вероятно, из-за ICS (API >= 14), используйте решение выше для ICS и выше.