這個問題是指在Android 只有2.2:如何判斷是否檢查(啓用)特定的TTS引擎?
下面的截圖顯示安裝了3個不同的文本到語音引擎:
- 微微TTS(Android的默認的升級Froyo 2.2)
- IVONA文本到語音HQ
- SVOX經典TTS
在這個截圖中,你合作看到並不是所有的3都被檢查(啓用)。相反,IVONA沒有被檢查,只剩下Pico(暗示,因爲它是硬編碼的)和SVOX(檢查)。
我希望能夠以編程方式從我的應用程序查詢特定的TTS引擎(如IVONA)是否checked(假設我知道在編碼時的包名,當然)。
在Android中2.2我只有getDefaultEngine()
不能在微微被選定爲默認和SVOX情況真正幫助檢查(換句話說,我怎麼知道SVOX檢驗是否微微是默認?)
如何實現,在安卓2.2 ?
這是可能的嗎?
P.S.的Android 4.x版(API> = 14)推出getEngines()這可能導致你相信這個問題解決了ICS +,但仔細觀察發現是:
- getEngines()只列出安裝,不檢查(啓用)包。
- 附帶每個列出的包中的EngineInfo僅提供名稱,標籤,圖標,優先級和它是否是系統圖像的一部分。換句話說,與Android 2.2相同的限制。
對不起,我忘了強調的是,我要尋找的是Android 2.2 ** **兼容的解決方案。正如您正確指出的那樣,'getEngines()'僅適用於API 14.'getDefaultEngine()'在選擇* Pico *作爲默認值並檢查* SVOX *的情況下無法真正起作用。如果* Pico *是默認值,我如何知道* SVOX *被選中? – an00b
未來,請在評論中說你正在編輯一個問題 - 我的答案剛剛被降低,我猜這是因爲現在的問題說明了答案中的所有內容。 我看不出有什麼會在API文檔中告訴你有關API 8檢查過的引擎,所以我認爲這可能是不可能的。 – Hbcdev
對不起。恕我直言,你應該刪除這個答案,因爲'getEngines()'和'getDefaultEngine()'都不能幫助判斷一個特定的TTS引擎是否被**檢查**。這個問題最好還是沒有答案,這樣人們就會知道**不可能告訴**特定的TTS引擎是否被**檢查**。爲您的評論+1。 – an00b