Как показать настройки для текста в речь в моем приложении?
У меня есть приложение, которое использует движок tts в Android, теперь, когда начинается действие, я хочу показать пользователям настройки, присутствующие в телефоне для двигателя tts, в котором они могут изменить высоту тона, протестировать двигатель, и т.д., который уже присутствует в эмуляторе.
Итак, как я могу представить им этот экран?
Ответы
Ответ 1
У меня была такая же проблема для моего приложения, и я нашел этот пост. Мне удалось сделать это самостоятельно, чтобы этот ответ был для тех, кому это может понадобиться.
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);
Мы создаем явное намерение, и мы должны запустить компонент com.android.settings.TextToSpeechSettings.
Вы можете использовать LogCat в eclipse для поиска любого пакета или компонента, который вы пытаетесь запустить. Просто просмотрите сообщения ActivityManager "Запуск активности", и вы увидите имя пакета и компонента любой активности.
UPDATE
Как и в случае с Android ICS, вы должны использовать решение Force, размещенное ниже.
intent = new Intent();
intent.setAction("com.android.settings.TTS_SETTINGS");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
this.startActivity(intent);
Ответ 2
Для пользователей ICS вызов Bandreid больше не будет работать. Вы должны использовать этот код:
intent = new Intent();
intent.setAction("com.android.settings.TTS_SETTINGS");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
this.startActivity(intent);
Ответ 3
Я объединил ответ 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);
}
Или в одной строке:
//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));
Надеюсь, что мой ответ поможет!
Ответ 4
Создайте намерение, чтобы открыть настройки. Я думаю, что это будет.
Intent i = new Intent(android.provider.Settings.ACTION_INPUT_METHOD_SETTINGS);
startActivityForResult(i); // to come back to your activity.