我有一个在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)
我已经合并了Bandreid和Force 的答案以支持每个 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)
希望我的回答有帮助!
| 归档时间: |
|
| 查看次数: |
7151 次 |
| 最近记录: |