我需要在阿拉伯语中获取位置名称,如果gps为英语启用我使用以下代码。
Geocoder geocoder = new Geocoder(getApplicationContext(), Locale.getDefault());
// LogCat: Display language = English
Log.i("Display language = ", "" + mLocale.getDisplayLanguage());
Log.i("geocoder geocoder = ", "" + geocoder.toString());
// Geocoder geocoder = new Geocoder(getApplicationContext(), Locale.getDefault());
try {
List<Address> listAddresses = geocoder.getFromLocation(latitude, longitude, 1);
if (null != listAddresses && listAddresses.size() > 0) {
String _Location = listAddresses.get(0).getAddressLine(0);
// Log.i("_Location = ", "" + _Location);
Address address = listAddresses.get(0);
Log.i("address = ", "" + address);
result = address.getLocality();
Log.i("result = ", "" + result);
// Toast.makeText(getApplicationContext(), "Your Location NAME is -" + result , Toast.LENGTH_LONG).show();
}
} catch (IOException e) {
e.printStackTrace();
}
地址[addressLines = [ 阿布扎比 - 阿拉伯联合酋长国&#34;],特征=第3 Street,admin =阿布扎比,sub-admin = null,locality = Abu 比,通道=第三 Street,postalCode = null,countryCode = AE,countryName = United Arab 酋,hasLatitude =真,纬度=,hasLongitude =真,经度=,电话= NULL,URL =无效,额外=空]
我需要基于用户在app中选择的语言的阿拉伯语中的位置值。
我给了Locale mLocale = new Locale("ar","AE");
但它给的是阿拉伯语的国名,我需要阿拉伯语的地方价值。
在galaxy s7数据中根据阿拉伯语选择正确得出阿拉伯语数据
只有当我通过语言环境阿拉伯语时,才会提供英语数据。答案 0 :(得分:2)
在最近的参考资料中,Locale拥有适用于ISO 639-1 / ISO 3166-1的语言/国家/地区代码信息。
ISO 639-1是两个字母的小写语言代码。阿拉伯语以这种格式定义。
您可以像这样设置阿拉伯语的语言环境:
\
注意:
Android区域设置参考:https://developer.android.com/reference/java/util/Locale.html
ISO 639-1代码参考:https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes
希望它适合你。