【发布时间】:2012-08-17 23:40:11
【问题描述】:
此问题仅适用于 Android 2.2:
以下屏幕截图显示了安装的 3 个不同的文本转语音引擎:
- PIco TTS(Android 自 Froyo 2.2 起的默认设置)
- IVONA 文本转语音总部
- SVOX 经典 TTS
在此屏幕截图中,您可以看到并非所有 3 个都被选中(启用)。相反,IVONA 未选中,只留下 Pico(隐含,因为它是硬编码的)和 SVOX(选中)。
我希望能够以编程方式从我的应用程序中查询特定 TTS 引擎(例如 IVONA)是否为 checked(当然,假设我在编码时知道它们的包名称)。
在 Android 2.2 中,我只有 getDefaultEngine() 在默认选择 Pico 并且 SVOX 被选中(换句话说,如果 Pico 是默认值,我怎么知道 SVOX 被选中?)
我如何在 Android 2.2 中做到这一点?
这可能吗?
P.S. Android 4.x (API >= 14) 引入了getEngines(),这可能会让你相信这个问题已经为 ICS+ 解决了,但仔细研究会发现:
- getEngines() 仅列出已安装,而不列出已检查(启用)的软件包。
- 每个列出的软件包附带的EngineInfo 仅提供名称、标签、图标、优先级以及它是否是系统映像的一部分。换句话说,与 Android 2.2 中的限制相同。
【问题讨论】:
标签: android text-to-speech android-2.2-froyo