您好,使用文本到语音。
我的目标是API 16,所以我启动了在设备上启动TTS设置的意图。
public Intent launchTTSSettings(){
Intent TTSSettings = new Intent();
TTSSettings.setAction("com.android.settings.TTS_SETTINGS");
TTSSettings.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
return TTSSettings;
}我的应用程序在后台。
我更改了一些TTS设置
我的应用程序回到前台,我注意到我的应用程序仍然使用旧的TTS设置,除非我再次关闭和打开应用程序。
我想听听TTS设置的任何变化--也许是广播接收器,但我找不到任何与此相关的东西。
那么,是否有任何方法可以优雅地响应TTS设置中的更改?
我想我可以销毁我的TTS实例并重新制作它,但是问题的根源在于我如何知道一个设置是否真的被更改了。
谢谢你的阅读
发布于 2015-09-25 11:31:47
提出了一个不太好的解决方案,但它似乎是随着变化而起作用的。
请注意,我还没有引入进度对话框,直到onInit调用,但是下面是逻辑
因此,我在这里启动我的文本到语音设置意图,并设置一个标志为真。
startActivity(mTextToSpeechHelper.launchTTSSettings());
mTTSSettingsHasChanged = true;然后进入简历
@Override
protected void onResume() {
super.onResume();
if(mTTSSettingsHasChanged){
mTTSSettingsHasChanged = false;
mTextToSpeechHelper.destroy();
mTextToSpeechHelper = null;
mTextToSpeechHelper = new TextToSpeechHelper();
}
}请注意,破坏是这样做的,因为我的TTS内容位于帮助器类中。
public void destroy(){
if(mTextToSpeech != null){
mTextToSpeech.stop();
mTextToSpeech.shutdown();
}
}不好的是,用户可以进入设置,但不能更改旧实例中会出现的任何可能被销毁的内容,而新的实例则是没有任何生产理由的。
https://stackoverflow.com/questions/32780693
复制相似问题