Sprache ändern Einstellungen ( Locale ) für das Gerät

? raychenon @ | Original: StackOverFlow

Ich weiß, es ist möglich, mehrere Sprachen in einer einzigen Anwendung durch die res / string und je nach Gebietsschema haben . Hier ist ein Fall,  http://stackoverflow.com/questions/2078289/android-controling-the-user-language

Nun, wie kann ich die Sprache im Telefon ändern? Wie ich von zu tun Menü> Einstellungen> Sprache & amp; Tastatur > Sprache wählen > Sprachen

Gibt es einen echten Code auf diese Einstellungen zuzugreifen ? Oder sollte ich Vorsatz schaffen für eine Verknüpfung zu den Spracheinstellungen . Bitte senden Sie einen Code

edit: Mit Locale-Klasse developer.android.com/intl/fr/reference/java/util/Locale.html

Der Konstruktor mindestens Locale (String Sprache ) Der Eingang ist die Sprache. Wie können Sie die aktuelle Sprache auf dem Gerät verwendet abrufen ?

Top 5 Antwort

1Jim Blackler @

Nicht sicher Einstellung es direkt aus der App, aber wenn Sie, um den Benutzer zu senden gibt es selbst ändern wollen, versuchen Sie dies:

Intent intent = new Intent(Intent.ACTION_MAIN);
intent.setClassName("com.android.settings", "com.android.settings.LanguageSettings");            
startActivity(intent);
2raychenon @

Ich fand einen anderen Antwort auf meine eigene Frage . Es ist ein Open-Source -Code -Projekt http://code.google.com/p/languagepickerwidget Es ist eine Neuer ListActivity zur Anzeige und wählen Sie die Sprache .

Jim, ist die Lösung sehr einfach und genau das, was ich brauchte. Es ist ein shorcut an den Einstellungen . Unmittelbar nach veröffentlicht, hochgeladen ich eine App namens " raygional " auf dem Markt. Wenn ich ( ich habe nur 6 Punkte) würde ich Ihre Antwort nützlich.

Es ist ein weiterer Weg, um die Prozesse und Sinne anzusehen. Auf der Emulator gehen Sie zu Menü > Entwicklungstools > Entwicklungs Einstellungen> und klicken Sie auf anzeigen laufenden Prozesse

3caller9 @

Um auf Jims Antwort zu erweitern, wenn Sie die Absicht zu ändern:

intent.setClassName("com.android.settings", "com.android.settings.LocalePicker"); 

Es wird dem Benutzer weg direkt in der Sprachauswahlliste fallen zu lassen und einmal die Sprache ausgewählt ist wird es auf Ihre Bewerbung zurück.

Es beseitigt ein Klicken, macht nicht den Benutzer darüber nachdenken, welche der drei (Sprache, Wörterbuch und Tastatur) Optionen zur Auswahl und kehrt in die App sofort nach Auswahl .

4Edu Zamora @

Soweit ich weiß, der einzige Weg, das Gebietsschema des Gerätes ohne Intents ( was die anderen Lösungsvorschläge ) wird Zugriff auf interne Klassen durch Reflexion ( mit den Risiken, dass dies bedeutet ) zu ändern.

Eine genaue Beispiel für diesen Anwendungsfall finden Sie hier:  http://www.tutorialforandroid.com/2010/07/access-internal-classes-in-android.html

5Sergey @

Es gibt einen anderen Weg, um die Systemeinstellungen zu öffnen, um die Sprache zu ändern :

Intent i = new Intent( android.provider.Settings.ACTION_LOCALE_SETTINGS );
startActivity( i );

Es zeigt nur die Liste der Sprachen, und wenn Sie eine Wahl - es die Sprache des Gerätes ändert .