我有一个在Android中使用tts引擎的应用程序,现在当活动开始时,我想向用户显示手机中为tts引擎提供的设置,他们可以在这些设置中改变音高,测试引擎,已经存在于模拟器中的等等。
那么,我该如何向他们展示这个画面呢?
答案 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.