【问题标题】:Enable default TTS engine from program in android从 android 中的程序启用默认 TTS 引擎
【发布时间】:2012-09-06 15:28:06
【问题描述】:

是否可以检查 Android 中是否启用了默认的 Text-to-Speech 引擎?如果没有,我可以通过我的 Android 程序启用它吗?如果有,怎么做?

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

上面的代码显示了不同的可用 TTS 并显示为一个对话框,然后我选择所需的 TTS 并单击“确定”。一旦我这样做了 - 系统(平板电脑或手机)会自动选择所选的 TTS 并启用它。

我可以通过将它放在自定义布局中来做同样的事情(列出安装的 TTS),我可以选择需要什么并通过单击启用按钮或其他方式启用它吗?

谢谢!

【问题讨论】:

    标签: android


    【解决方案1】:

    您可以在 ICS 中列出可用的 TTS 引擎,并且可以在 Froyo 及更高版本上按包名称和语言测试可用性。 TTS 引擎由系统控制,因此您无法从您的应用中禁用/启用它们。您只能提示用户这样做。

    回复:已编辑的问题。这是一个完全不同的故事。此意图检查是否安装了 TTS 数据,如果您有多个引擎,则必须选择一个来处理该意图。这只是 Android 分发意图的方式,与 TTS 无关。如果您通过调用Intent.setPackage("my.tts.package") 明确意图,则不会显示该对话框。请注意,这不会检查是否启用了 TTS 引擎。我还没有检查,但我怀疑如果 TTS 引擎在设置中被禁用,这将启用它。

    【讨论】:

    • 谢谢 - 提示是什么意思?
    • 显示“请启用 TTS 引擎 XXX 以使用 YYY 功能”的对话框,如果他们按 OK,可能会将其带到设置屏幕。
    • 意图 checkIntent = new Intent(); checkIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA); startActivityForResult(checkIntent, MY_DATA_CHECK_CODE);提示不同的 TTS 引擎。我最终选择了对我有好处的东西,然后单击“确定”。之后系统会自动选择所选的 TTS。我可以在自定义布局中执行此操作吗?就像我的风格而不是默认选项一样?
    • 编辑了顶部的问题以便更好地理解
    • 谢谢尼古拉。你的意思是说如果你说 Intent.setPackage("my.tts.package") - 这将自动选择所需的包然后使用它。如果是这样的话 - 我很好。在查看 Jellybean、Andriod 2.2、Android 4.0.3 之后,它们都默认启用了 TTS。如果我错了,请纠正我?
    猜你喜欢
    • 1970-01-01
    • 2011-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-05
    • 2021-10-21
    • 1970-01-01
    相关资源
    最近更新 更多