an0*_*00b 9 android text-to-speech android-2.2-froyo
此问题仅适用于Android 2.2:
以下屏幕截图显示了安装的3种不同的文本到语音引擎:
在此屏幕截图中,您可以看到并非所有3都已选中(已启用).相反,IVONA未经检查,仅留下Pico(暗示,因为它是硬编码的)和SVOX(已检查).

我希望能够以编程方式从我的应用程序查询特定的TTS引擎(如IVONA)是否被选中(假设我知道在编码时的包名,当然).
在安卓2.2所有我是getDefaultEngine()不能在一个情况下真正帮助碧被选定为默认和SVOX检查(换句话说,我怎么知道SVOX如果被选中的Pico是默认?)
如何在Android 2.2中实现这一目标?
这是可能吗?
PS Android 4.x(API> = 14)引入了getEngines(),这可能会让您相信ICS +已经解决了这个问题,但仔细研究后发现:
请参阅Android TextToSpeech API 指南
getEngines()将给出所有已安装引擎的列表,以及每个引擎的一些信息。
getDefaultEngine()将给出用户选择的默认引擎的包名称。
将每个引擎的包名称(或预先拥有的列表)与默认引擎的包名称进行比较,您将能够看到选择了哪个。
请注意,前一个函数仅在 API 级别 14 中可用,而第二个函数在 API 级别 8 中可用。