This question refers on Android 2.2 only:
The following screenshot shows 3 different text-to-speech engines installed:
- PIco TTS (Android's default as of Froyo 2.2)
- IVONA Text-to-Speech HQ
- SVOX Classic TTS
In this screenshot, you could see that not all 3 are checked (enabled). Instead, IVONA is unchecked, leaving only Pico (implied, as it's hard-coded in) and SVOX (checked).
I would like to be able to programmatically query from my application whether a specific TTS engine (e.g. IVONA) is checked (assuming I know at coding time their package names, of course).
In Android 2.2 all I have is getDefaultEngine()
which can't really help in a situation where Pico is selected as default and SVOX is checked (in other words, how do I know that SVOX is checked if Pico is the default?)
How do I accomplish that in Android 2.2?
Is this at all possible?
P.S. Android 4.x (API >= 14) introduced getEngines() which may lead you to believe that this problem is solved for ICS+ but closer examination reveals that:
- getEngines() only lists installed, not checked (enabled) packages.
- The EngineInfo that comes with each listed package only provides name, label, icon, priority and whether it is part of the system image. In other words, same limitation as in Android 2.2.