2012-09-06 42 views
0

是否可以檢查默認的文本到語音引擎是否在Android中啓用?如果沒有,我可以通過我的Android程序啓用它嗎?如果是這樣,怎麼樣?從android中的程序啓用默認的TTS引擎

Intent checkIntent = new Intent(); 
checkIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA); 
startActivityForResult(checkIntent, MY_DATA_CHECK_CODE); 

上面的代碼顯示了不同的TTS可用並顯示爲對話框,然後我選擇所需的TTS並單擊確定。一旦我這樣做 - 系統(平板電腦或手機)會自動選擇所選的TTS並啓用它。

我可以通過將其置於自定義佈局(列出安裝的TTS)來做同樣的事情嗎?我可以選擇所需的內容並通過點擊啓用按鈕啓用它?

謝謝!

回答

0

您可以在ICS中列出可用的TTS引擎,您可以在Froyo及更高版本上通過軟件包名稱和語言測試可用性。 TTS引擎由系統控制,因此您無法從您的應用中禁用/啓用它們。您只能提示用戶這樣做。

回覆:編輯的問題。這是完全不同的故事。這個意圖檢查是否安裝了TTS數據,如果你有多個引擎,你將不得不選擇一個來處理這個意圖。這只是Android發佈意圖的方式,與TTS無關。如果您通過調用Intent.setPackage("my.tts.package")明確了該意圖,則該對話框將不會顯示。請注意,這不檢查是否啓用了TTS引擎。我沒有檢查,但我懷疑如果TTS引擎在設置中被禁用,這將啓用它。

+0

謝謝 - 你提示什麼意思? – TheDevMan

+0

顯示一個對話框,說明'請啓用TTS引擎XXX使用功能YYY',並且如果他們按下確定,可能會將它們帶到設置屏幕。 –

+0

意向checkIntent = new Intent(); checkIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA); startActivityForResult(checkIntent,MY_DATA_CHECK_CODE); 提示不同的TTS引擎。我最終選擇對我有益的事情,然後單擊確定。系統會自動選擇所選的TTS ..我可以在自定義佈局中執行此操作 - 就像我的樣式而不是默認選項一樣? – TheDevMan