2010-07-01 5 views
10

Ich habe eine Anwendung, die die TTS - Engine in Android verwendet, jetzt, da die Aktivität startet, möchte ich den Benutzern die Einstellungen zeigen, die im Telefon für die TTS - Engine vorhanden sind, in der sie die Tonhöhe ändern, den Motor usw welches bereits im Emulator vorhanden ist.Wie werden die Einstellungen für Text-zu-Sprache in meiner App angezeigt?

Also, wie präsentiere ich ihnen diesen Bildschirm?

Antwort

9

Ich hatte das gleiche Problem für meine App und fand diesen Beitrag. Ich habe es selbst geschafft, also ist diese Antwort für diejenigen, die es auch brauchen könnten.

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); 

Wir schaffen eine explizite Absicht, und wir müssen die com.android.settings.TextToSpeechSettings Komponente starten. Sie können LogCat in Eclipse verwenden, um das Paket oder die Komponente zu finden, die Sie starten möchten. Sehen Sie sich einfach die Aktivitätsnachrichten des ActivityManagers an und Sie sehen den Namen der Pakete und Komponenten einer beliebigen Aktivität.

UPDATE

Ab Android ICS sollten Sie die Lösung verwenden, die die Kraft unten geschrieben.

+1

Es scheint, dass diese Version nicht mehr funktioniert (zumindest auf Samsung Note 2 (API 18)). Die Antwort von Force funktioniert jedoch. '' ' intent = neue Absicht(); intent.setAction ("com.android.settings.TTS_SETTINGS"); intent.setFlags (Intent.FLAG_ACTIVITY_NEW_TASK); this.startActivity (Absicht); '' ' – Jani

+0

Dank @Jani. Ich habe meine Antwort aktualisiert, um auf die Lösung von Force hinzuweisen. – Bandreid

2

Erstellen Sie eine Absicht, um die Einstellungen zu öffnen. Ich denke, es wäre so.

Intent i = new Intent(android.provider.Settings.ACTION_INPUT_METHOD_SETTINGS); 
startActivityForResult(i); // to come back to your activity. 
+0

danke, aber dies würde dem Benutzer Tastatureinstellungen geben.Ich wollte diesen Bildschirm anzeigen, der unter Einstellungen-> Text zu Sprache ist. Hier ist der Screenshot: http://picasaweb.google.com/113593639172348814875/ScreenShots#5489006879503683298 – pranay

16

Für ICS-Benutzer wird Bandreids Anruf nicht mehr funktionieren. Sie haben diesen Code zu verwenden:

intent = new Intent(); 
intent.setAction("com.android.settings.TTS_SETTINGS"); 
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
this.startActivity(intent); 
3

I Bandreid der und Force Antwort fusioniert haben jede Android-Version zu unterstützen.

Mit diesem Code:

//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); 
} 

Oder in einer Zeile:

//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)); 

Hoffnung meine Antwort Hilfe!

Verwandte Themen