[英]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東西在幫助器類中
public void destroy(){
if(mTextToSpeech != null){
mTextToSpeech.stop();
mTextToSpeech.shutdown();
}
}
不好的是,用戶可以進行設置,但不能更改任何會導致舊實例被破壞而又沒有生產性原因的新實例的方法
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.