Modifier les paramètres de langue ( locale ) pour le dispositif

? raychenon @ | Original: StackOverFlow
---

Je sais que ce est possible d'avoir plusieurs langues dans une seule application par la résolution / string et en fonction des paramètres régionaux . Voici un cas  http://stackoverflow.com/questions/2078289/android-controling-the-user-language

Maintenant, comment puis-je changer la langue dans le téléphone ? Comme je le ferais par Menu> Paramètres> Langue & amp; Clavier> Sélectionner locale> langues

Y at-il du véritable code pour accéder à ces paramètres ? Ou devrais-je créer intention pour un raccourci vers les paramètres de langue . Se il vous plaît poster un code

edit: Avec classe Locale developer.android.com/intl/fr/reference/java/util/Locale.html

Le constructeur est au moins Locale ( langue String) L'entrée est la langue. Comment pouvez-vous récupérer la langue actuellement utilisée sur l'appareil?

---

Top 5 Répondre

1Jim Blackler @

Pas sûr de le mettre directement depuis l'application, mais si vous voulez envoyer à l'utilisateur il changer eux-mêmes, essayez ceci:

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

Je ai trouvé une autre réponse à ma propre question . Il ya un projet de code source ouvert http://code.google.com/p/languagepickerwidget Ce est recréer un ListActivity d'afficher et de choisir les langues .

Jim, votre solution est beaucoup plus simple et exactement ce dont je avais besoin . Ce est un raccourci pour les réglages . Immédiatement après que vous avez publié, je ai téléchargé une application appelée " raygional " sur le marché . Si je pouvais ( je ne ai que six points) Je aimerais faire de votre réponse utile .

Il ya une autre façon de voir les processus et les intentions . Sur l'émulateur allez dans Menu> Outils de développement > Paramètres de développement > et cliquez sur Afficher les processus de fonctionnement

3caller9 @

Pour étendre sur la réponse de Jim si vous changez l'intention de :

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

Il fera tomber l'utilisateur hors directement dans la liste de sélection de la langue et une fois une langue est sélectionnée, elle sera de retour à votre application .

Il élimine un clic, ne fait pas l'utilisateur pense à laquelle des trois (langue, dictionnaire, et clavier) options à choisir et revient à votre application immédiatement après la sélection .

4Edu Zamora @

Pour autant que je sache, la seule façon de modifier les paramètres régionaux de l'appareil sans utiliser intentions ( ce que les autres solutions proposent ) accède à des classes internes par la réflexion (avec les risques que cela implique ) .

Vous pouvez trouver un exemple exacte pour ce cas d'utilisation ici:  http://www.tutorialforandroid.com/2010/07/access-internal-classes-in-android.html

5Sergey @

Il ya une autre façon d'ouvrir les paramètres du système pour changer la langue :

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

Cela montre juste la liste des langues, et quand vous choisissez une - elle change la langue sur l'appareil.