我改变基于用户选择的应用程序的语言环境。 独立设备的语言环境。
运用
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());
}
但我想知道会有怎样的设备区域也。
当我试图让这个我总是让我已经设置为应用程序的语言环境。
例如:applictaion 英语和设备是中文的 。 我总是让英语 。
为获得使用的语言环境,
选项1。
String locale = context.getResources().getConfiguration().locale.getCountry();
选项2。
String local_country = ((Activity) context).getBaseContext().getResources().getConfiguration().locale.getCountry();
任何帮助将不胜感激!
我绝对不知道该如何便携本是不同的设备:
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();
}
如果你想在全国部分:persist.sys.country
我问类似的东西,发现这个答案,对不起,如果是晚:
要找到系统区域设置使用:
defaultLocale = Resources.getSystem().getConfiguration().locale;
它得到系统区域,无论哪个默认区域设置为应用程序/活动。
对于那些利用谁是Daniel Fekete
的解决方案是:
Process exec = Runtime.getRuntime().exec(new String[]{"getprop", "persist.sys.language"});
String locale = new BufferedReader(new InputStreamReader(exec.getInputStream())).readLine();
exec.destroy();
要知道,语言环境可能会在最新的Android API(+21) 空 ! 而是采用persist.sys.language
使用persist.sys.locale
exec = Runtime.getRuntime().exec(new String[]{"getprop", "persist.sys.locale"});
locale = new BufferedReader(new InputStreamReader(exec.getInputStream())).readLine();
exec.destroy();