Как показать настройки для преобразования текста в речь в моем приложении? - PullRequest
10 голосов
/ 01 июля 2010

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

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

Ответы [ 4 ]

19 голосов
/ 31 декабря 2011

Для пользователей ICS звонок Бандрейда больше не будет работать. Вы должны использовать этот код:

intent = new Intent();
intent.setAction("com.android.settings.TTS_SETTINGS");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
this.startActivity(intent);
10 голосов
/ 31 января 2011

У меня была та же проблема для моего приложения, и я нашел этот пост.Мне удалось сделать это самостоятельно, поэтому этот ответ предназначен для тех, кому это также может понадобиться.

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 Starting Activity и вы увидите имя пакета и компонента любого действия.

ОБНОВЛЕНИЕ

Начиная с Android ICS, вы должны использовать решение, которое Force опубликовано ниже.

intent = new Intent();
intent.setAction("com.android.settings.TTS_SETTINGS");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
this.startActivity(intent);
3 голосов
/ 27 июля 2015

Я объединил ответ 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));

Надеюсь, мой ответ поможет!

2 голосов
/ 01 июля 2010

Создать намерение, чтобы открыть настройки.Я думаю, что это будет.

Intent i = new Intent(android.provider.Settings.ACTION_INPUT_METHOD_SETTINGS);
startActivityForResult(i); // to come back to your activity.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...