Android: cambia la programación del sistema del dispositivo mediante programación

Quiero cambiar la configuración regional del dispositivo (no sólo la configuración regional de la aplicación) de mi aplicación, como el usuario puede hacer en Configuración -> Idioma y teclado -> Idioma.

¿Puede alguien explicar por favor cómo hacerlo? He estado buscando durante horas y no puedo encontrar una manera.

2 Solutions collect form web for “Android: cambia la programación del sistema del dispositivo mediante programación”

Esta aplicación desea que desee https://play.google.com/store/apps/details?id=org.gnvo.langpicker&hl=es

Aquí está su código fuente https://code.google.com/p/languagepickerwidget/

Aquí está su lógica principal http://bin-liu.blogspot.in/2012/05/how-to-change-system-locale-calling.html

EDITAR

Después de 4.2 nuevo Jelly Bean, la definición de nivel de protección de CHANGE_CONFIGURATION se ha cambiado, por lo que la aplicación no funcionará por encima de 4.2, la solución es http://droider.eu/2013/07/22/morelocale-2-not-working-on -4-2-2-sin-su-o-pm /

Sí, puede cambiar la configuración regional del dispositivo para cualquier versión de Android asegúrese de que su aplicación es app.Heres del sistema el código para ayudarle a cabo.Por favor, clasificar mi respuesta si te gusta.

//getting the languages that are shown same as in our device settings String[] systemLocaleIetfLanguageTags = getAssets().getLocales(); Arrays.sort(systemLocaleIetfLanguageTags); this.locale_data = new ArrayList(); for (String ietfLanguageTag : systemLocaleIetfLanguageTags) { if (ietfLanguageTag != null && ietfLanguageTag.length() == 5) { this.locale_data.add(new Loc(ietfLanguageTag)); } } adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, android.R.id.text1, locale_data); // Assign adapter to ListView lv.setAdapter(adapter); lv.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) { int itemPosition = position; Loc loc = (Loc) ChangeLanguage.this.adapter.getItem(position); Toast.makeText(ChangeLanguage.this, "language activated successfully !!", 0).show(); ChangeLanguage.change_setting(loc.getLocale()); } }); } //to change the locale public static void change_setting(Locale loc) { try { Class<?> activityManagerNative = Class.forName("android.app.ActivityManagerNative"); Object am = activityManagerNative.getMethod("getDefault", new Class[0]).invoke(activityManagerNative, new Object[0]); Object config = am.getClass().getMethod("getConfiguration", new Class[0]).invoke(am, new Object[0]); config.getClass().getDeclaredField("locale").set(config, loc); config.getClass().getDeclaredField("userSetLocale").setBoolean(config, true); am.getClass().getMethod("updateConfiguration", new Class[] { Configuration.class }).invoke(am, new Object[] { config }); } catch (Exception e) { e.printStackTrace(); } } 
  • Cómo restaurar la configuración regional predeterminada de una aplicación para Android
  • Obtener locales disponibles para tts
  • Configuración de idioma turco e inglés: traducir caracteres turcos a equivalentes latinos
  • Cómo configurar el texto del cuadro de diálogo de google api en el idioma predeterminado de la aplicación
  • Zona horaria de carga de Android demasiado larga: Nombres de zona horaria cargados para en_US
  • Usando COLLATE en Android SQLite - Locales se ignora en la instrucción LIKE
  • ¿Cómo mostrar la casilla de verificación a la izquierda cuando cambie el idioma de la aplicación de Android al árabe?
  • Iniciar la aplicación con un idioma específico
  • La mejor manera de determinar automáticamente el idioma del usuario
  • Android obtiene la configuración actual, no predeterminada
  • ¿Por qué Locale.getDefault (). GetLanguage () en Android devuelve el nombre para mostrar en lugar del código de idioma?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.