在我的应用中显示文本到语音的设置

时间:2016-03-26 15:48:01

标签: android android-intent text-to-speech

我已经实现了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 个答案:

答案 0 :(得分:2)

您可以使用此意图操作来检查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及以上。