Modificare le impostazioni della lingua ( impostazioni internazionali ) per il dispositivo

? raychenon @ | Original: StackOverFlow
---

So che è possibile avere più lingue in una sola applicazione attraverso la res / string e seconda Locale . Ecco un caso  http://stackoverflow.com/questions/2078289/android-controling-the-user-language

Ora come posso cambiare la lingua nel telefono ? Come farei da Menu > Impostazioni> Lingua & amp ; Tastiera > Seleziona lingua > Lingue

C'è qualche codice reale per accedere a queste impostazioni ? O devo creare intenti per una scorciatoia per le impostazioni della lingua . Si prega di inserire un certo codice

Edit : Con classe Locale developer.android.com/intl/fr/reference/java/util/Locale.html

Il costruttore è almeno Locale (lingua String ) L'ingresso è il linguaggio . Come è possibile recuperare la lingua corrente utilizzata sul dispositivo ?

---

Top 5 Risposta

1Jim Blackler @

Non sono sicuro su come impostare direttamente dalla app, ma se si desidera inviare all'utente lì per cambiare se stessi, provate questo :

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

Ho trovato un'altra risposta alla mia domanda . C'è un progetto di codice open source http://code.google.com/p/languagepickerwidget E ' ricreando un ListActivity per visualizzare e selezionare le lingue .

Jim, la soluzione è molto semplice ed esattamente quello che mi serviva . E 'una scorciatoia per le impostazioni . Immediatamente dopo aver pubblicato, ho caricato un app chiamata " raygional " sul mercato . Se potessi ( ho solo 6 punti ) Mi piacerebbe rendere la vostra risposta utile .

C'è un altro modo di vedere i processi e gli intenti . Sulla emulatore andare a Menu > Dev Strumenti > Impostazioni di sviluppo > e fare clic su Mostra i processi in esecuzione

3caller9 @

Per ampliare la risposta di Jim se si modifica l'intento di :

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

Si scenderà l'utente fuori direttamente nella lista di selezione della lingua e una volta selezionata una lingua tornerà alla vostra applicazione .

Rimuove un click, non rende l'utente pensare quale delle tre ( lingua, dizionario, e tastiera) opzioni tra cui scegliere e torna per la vostra applicazione subito dopo la selezione .

4Edu Zamora @

Per quanto ne so, l'unico modo per modificare le impostazioni internazionali del dispositivo senza l'utilizzo di Intenti (che le altre soluzioni propongono ) accede classi interne attraverso la riflessione ( con i rischi che ciò comporta ) .

È possibile trovare un esempio esatto per questo caso d'uso qui :  http://www.tutorialforandroid.com/2010/07/access-internal-classes-in-android.html

5Sergey @

C'è un altro modo per aprire le impostazioni di sistema per modificare la lingua :

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

Essa dimostra l'elenco delle lingue, e quando si sceglie uno - cambia la lingua del dispositivo .