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();
        }
    }

不好的是,用户可以进入设置但不更改任何内容,这会导致旧实例被销毁而新实例无故创建