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

pra*_*nay 11 android

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

那么,我该如何向他们展示这个屏幕?

For*_*rce 20

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

intent = new Intent();
intent.setAction("com.android.settings.TTS_SETTINGS");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
this.startActivity(intent);
Run Code Online (Sandbox Code Playgroud)


Ban*_*eid 13

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

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);
Run Code Online (Sandbox Code Playgroud)

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

UPDATE

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

intent = new Intent();
intent.setAction("com.android.settings.TTS_SETTINGS");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
this.startActivity(intent);
Run Code Online (Sandbox Code Playgroud)


Tho*_*Vos 6

我已经合并了BandreidForce 的答案以支持每个 Android 版本。

使用此代码:

//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);
}
Run Code Online (Sandbox Code Playgroud)

或者在一行中:

//Open Android Text-To-Speech Settings
startActivity(Build.VERSION.SDK_INT >= 14 ?
        new Intent().setAction("com.android.settings.TTS_SETTINGS").setFlags(Intent.FLAG_ACTIVITY_NEW_TASK) :
        new Intent().addCategory(Intent.CATEGORY_LAUNCHER).setComponent(new ComponentName("com.android.settings", "com.android.settings.TextToSpeechSettings")).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
Run Code Online (Sandbox Code Playgroud)

希望我的回答有帮助!