Android:文本到语音设置更改的侦听器
Android: Listener for change in text to speech settings
您好使用文字转语音。
我的目标是 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 实例并重新制作它,但问题的根源是我如何知道设置是否真的被更改了
感谢阅读
提出了一个不是很好的解决方案,但它似乎可以工作,因为它遵守了更改
请注意,我没有引入进度对话框并等待 onInit 调用,但这是逻辑
所以我在这里启动文本到语音设置意图并将标志设置为 true
startActivity(mTextToSpeechHelper.launchTTSSettings());
mTTSSettingsHasChanged = true;
然后在简历中
@Override
protected void onResume() {
super.onResume();
if(mTTSSettingsHasChanged){
mTTSSettingsHasChanged = false;
mTextToSpeechHelper.destroy();
mTextToSpeechHelper = null;
mTextToSpeechHelper = new TextToSpeechHelper();
}
}
请注意 destroy 这样做是因为我的 TTS 内容在助手中 class
public void destroy(){
if(mTextToSpeech != null){
mTextToSpeech.stop();
mTextToSpeech.shutdown();
}
}
不好的是,用户可以进入设置但不更改任何内容,这会导致旧实例被销毁而新实例无故创建
您好使用文字转语音。
我的目标是 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 实例并重新制作它,但问题的根源是我如何知道设置是否真的被更改了
感谢阅读
提出了一个不是很好的解决方案,但它似乎可以工作,因为它遵守了更改
请注意,我没有引入进度对话框并等待 onInit 调用,但这是逻辑
所以我在这里启动文本到语音设置意图并将标志设置为 true
startActivity(mTextToSpeechHelper.launchTTSSettings());
mTTSSettingsHasChanged = true;
然后在简历中
@Override
protected void onResume() {
super.onResume();
if(mTTSSettingsHasChanged){
mTTSSettingsHasChanged = false;
mTextToSpeechHelper.destroy();
mTextToSpeechHelper = null;
mTextToSpeechHelper = new TextToSpeechHelper();
}
}
请注意 destroy 这样做是因为我的 TTS 内容在助手中 class
public void destroy(){
if(mTextToSpeech != null){
mTextToSpeech.stop();
mTextToSpeech.shutdown();
}
}
不好的是,用户可以进入设置但不更改任何内容,这会导致旧实例被销毁而新实例无故创建