Подтвердить что ты не робот

Как показать настройки для текста в речь в моем приложении?

У меня есть приложение, которое использует движок tts в Android, теперь, когда начинается действие, я хочу показать пользователям настройки, присутствующие в телефоне для двигателя tts, в котором они могут изменить высоту тона, протестировать двигатель, и т.д., который уже присутствует в эмуляторе.

Итак, как я могу представить им этот экран?

4b9b3361

Ответ 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.