2012-06-08 45 views
3

我必須在android中以編程方式覆蓋設備的文本到語音設置,該怎麼做?我們可以通過編程方式覆蓋設備的TTS引擎設置嗎?

完整的使用案例是: 我的應用程序正在根據用戶的輸入設置應用程序語言,即:如果用戶選擇法語作爲語言,則應用程序將顯示所有文本並僅用法語發佈文本。但問題出在設備的TTS引擎設置您可以使用選項「始終使用我的設置」複選框來覆蓋應用程序設置,那麼是否有任何方式通過我的應用程序以編程方式來檢查或取消選中複選框,所以我需要從應用程序做的事情是當應用程序要宣佈文本時,在宣佈它將取消複選框,然後宣佈它,並再次將複選框回來。

順便說一下,我正在開發應用程序使用Android 2.1版本和使用三星Galaxy選項卡。

請提供一些方法來實現它。

問候, 皮克斯

+0

它看起來像你在找[不可能](http://stackoverflow.com/questions/6656536/setting-language-for-tts-programmatically#comment8479748_6656805)。 – an00b

回答

1

您不必更改系統設置,你只需要調用setLanguage(),也許setEngineByPackageName()你的TTS實例。通常,您不能從應用更改系統設置,也適用於TTS。

+0

似乎有很多重寫[「總是使用我的設置」](http://stackoverflow.com/q/10960155/636571)複選框的需求。 [這個評論](http://stackoverflow.com/questions/6656536/setting-language-for-tts-programmatically#comment8479748_6656805)表明它**不可能**覆蓋該系統設置。這是有道理的,因爲否則它會打敗「總是使用** my **設置」的目的。你能證實這一點嗎? +1現在。 – an00b

+1

你必須檢查源代碼來確認,但由於這是一個系統設置,我不認爲你可以覆蓋它。順便說一句,果凍豆似乎沒有了。 –

+0

是的,我注意到這個設置已經在ICS中消失了(三星Galaxy Nexus運行Android 4.0.4)。順便說一句,任何想法[如何判斷一個特定的TTS引擎是否被選中(啓用)](http://stackoverflow.com/q/12074981)FROYO ** 2.2 **? – an00b

1

就TTS速度而言,您無法覆蓋設備設置,這很荒謬,默認'正常'太快而'太慢'太慢......如果我們有滑動調整,就像在TTS中一樣應用程序,那麼就沒有問題了。

+1

TTS引擎設置有一個複選框選項「總是使用我的設置」,我只想檢查/啓用 - 取消選中/禁用它時,我的應用程序將宣佈和通知完成後恢復以前的值...我只是想知道是否有可能從我的申請變更。請分享你的意見。 – piks

相關問題