Cómo obtener la configuración regional del dispositivo después de cambiar la configuración regional de la aplicación
Estoy cambiando la configuración regional de la aplicación según la elección del usuario. Independiente de la configuración regional del dispositivo.
utilizando
- Llamada de escucha de la ubicación de Android muy a menudo
- Android: Cómo obtener una cadena en una configuración específica SIN cambiar la configuración actual
- Eliminar localizaciones no utilizadas de APK
- ¿Cómo puedo extraer bases de datos de mi Android en mi escritorio?
- ¿Cómo cambiar el idioma mediante programación?
public void setDefaultLocale(Context context, String locale) { Locale appLoc = new Locale(locale); Locale.setDefault(appLoc); Configuration appConfig = new Configuration(); appConfig.locale = appLoc; context.getResources().updateConfiguration(appConfig, context.getResources().getDisplayMetrics()); }
Pero quiero saber cuál será la localización del dispositivo también.
Cuando estoy tratando de conseguir esto siempre tengo la configuración regional que he establecido en la aplicación.
Ex: el applictaion está en INGLÉS y el dispositivo está en CHINO . Siempre estoy recibiendo inglés .
Para obtener el uso de la configuración regional,
Opción 1.
String locale = context.getResources().getConfiguration().locale.getCountry();
opcion 2.
String local_country = ((Activity) context).getBaseContext().getResources().getConfiguration().locale.getCountry();
Cualquier ayuda será muy apreciada!
- Obtener los idiomas disponibles para una aplicación
- Código de lengua para flamenco
- BigDecimal da NumberFormatException en Android 4.0.3 con localización
- Android change language escuchar
- Aplicación multilenguaje: la mejor manera?
- Androide. ¿Cómo usar los mismos mensajes localizables para todos los idiomas de un país?
- Android: cómo obtener el día actual de la semana (lunes, etc ...) en el idioma del usuario?
- Cambio de idioma en tiempo de ejecución Android
Estoy absolutamente inseguro cómo es portable esto a los diversos dispositivos:
try { Process exec = Runtime.getRuntime().exec(new String[]{"getprop", "persist.sys.language"}); String locale = new BufferedReader(new InputStreamReader(exec.getInputStream())).readLine(); exec.destroy(); Log.e("", "Device locale: "+locale); } catch (IOException e) { e.printStackTrace(); }
Y si quieres la parte del país: persist.sys.country
Pregunté algo similar y encontré esta respuesta, lo siento si es tarde:
Para buscar la configuración regional del sistema:
defaultLocale = Resources.getSystem().getConfiguration().locale;
Obtiene la configuración regional del sistema, independientemente de la configuración regional predeterminada para la aplicación / actividad.
Para aquellos que están utilizando la solución de Daniel Fekete
que es:
Process exec = Runtime.getRuntime().exec(new String[]{"getprop", "persist.sys.language"}); String locale = new BufferedReader(new InputStreamReader(exec.getInputStream())).readLine(); exec.destroy();
¡Tenga en cuenta que la localidad podría estar VACÍA en la última versión de Android Api (+21)! En lugar de usar persist.sys.language
use persist.sys.locale
exec = Runtime.getRuntime().exec(new String[]{"getprop", "persist.sys.locale"}); locale = new BufferedReader(new InputStreamReader(exec.getInputStream())).readLine(); exec.destroy();
- ¿Cuál es la unidad de medida para la duración del medio en MediaMetadataRetriever
- No es posible establecer SwipeFlingAdapterView desde el adaptador de matriz