And*_*Dev 9 android location locale device
我正在根据用户选择更改应用程序区域设置.独立于设备区域设置.
运用
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());
}
Run Code Online (Sandbox Code Playgroud)
但我想知道设备区域设置也是什么.
当我试图得到这个时,我总是得到我设置为应用程序的语言环境.
例如:应用程序为ENGLISH,设备为中文.我总是得英语.
用于获取区域设置,
选项1.
String locale = context.getResources().getConfiguration().locale.getCountry();
Run Code Online (Sandbox Code Playgroud)
选项2.
String local_country = ((Activity) context).getBaseContext().getResources().getConfiguration().locale.getCountry();
Run Code Online (Sandbox Code Playgroud)
任何帮助将受到高度赞赏!
我问了类似的东西并找到了答案,对不起,如果已经晚了:
要查找系统区域设置,请使用:
defaultLocale = Resources.getSystem().getConfiguration().locale;
Run Code Online (Sandbox Code Playgroud)
无论为app/activity设置了哪个默认语言环境,它都会获得系统区域设置.
我绝对不确定这对于不同的设备有多便携:
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();
}
Run Code Online (Sandbox Code Playgroud)
如果你想要国家部分:persist.sys.country
| 归档时间: |
|
| 查看次数: |
2633 次 |
| 最近记录: |