如何在我的应用程序中显示文本到语音的设置?

时间:2010-07-01 18:05:42

标签: android

我有一个在Android中使用tts引擎的应用程序,现在当活动开始时,我想向用户显示手机中为tts引擎提供的设置,他们可以在这些设置中改变音高,测试引擎,已经存在于模拟器中的等等。

那么,我该如何向他们展示这个画面呢?

4 个答案:

答案 0 :(得分:18)

对于ICS用户,Bandreid的电话将不再有效。你必须使用这段代码:

intent = new Intent();
intent.setAction("com.android.settings.TTS_SETTINGS");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
this.startActivity(intent);

答案 1 :(得分:10)

我的应用程序遇到了同样的问题并发现了这篇文章。我设法自己做,所以这个答案适用于那些可能需要它的人。

ComponentName componentToLaunch = new ComponentName(
        "com.android.settings",
        "com.android.settings.TextToSpeechSettings");
Intent intent = new Intent();
intent.addCategory(Intent.CATEGORY_LAUNCHER);
intent.setComponent(componentToLaunch);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);

我们创建了一个显式的intent,我们必须启动com.android.settings.TextToSpeechSettings组件。 您可以在eclipse中使用LogCat来查找您尝试启动的任何包或组件。只需查看ActivityManager的Starting活动消息,您将看到任何Activity的包和组件名称。

<强>更新

从Android ICS开始,您应该使用下面发布的强制解决方案。

intent = new Intent();
intent.setAction("com.android.settings.TTS_SETTINGS");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
this.startActivity(intent);

答案 2 :(得分:3)

我合并了 Bandreid&#39> Force 的答案,以支持每个Android版本。

使用此代码:

dynamic jsonData = JsonConvert.DeserializeObject<dynamic>(JSON_string);

或者在一行中:

//Open Android Text-To-Speech Settings
if (Build.VERSION.SDK_INT >= 14){
    Intent intent = new Intent();
    intent.setAction("com.android.settings.TTS_SETTINGS");
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(intent);
}else {
    Intent intent = new Intent();
    intent.addCategory(Intent.CATEGORY_LAUNCHER);
    intent.setComponent(new ComponentName("com.android.settings", "com.android.settings.TextToSpeechSettings"));
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(intent);
}

希望我的回答有所帮助!

答案 3 :(得分:2)

创建一个Intent来打开设置。我想是的。

Intent i = new Intent(android.provider.Settings.ACTION_INPUT_METHOD_SETTINGS);
startActivityForResult(i); // to come back to your activity.