我需要用阿拉伯语获取位置名称,如果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();
}
地址[地址行=[ 阿布扎比 - 阿拉伯联合酋长国"],功能=3rd 街道,管理员=阿布扎比,子管理员=空,地区=阿布 阿布扎比,大道=第三 街道,邮政编码=空,国家代码=AE,国家名称=阿拉伯联合 Emirates,hasLatitude=true,latitude=,hasLongitude=true,longitude=,phone=null,url=null,extras=null]
我需要基于用户在应用程序中选择的语言的阿拉伯语位置值。
我给了Locale mLocale = new Locale("ar","AE");
但它给出了阿拉伯语的国家名称,我需要阿拉伯语的地方价值。
在Galaxy S7中,数据基于阿拉伯语选择正确提供阿拉伯语数据
S6 不来,它只在我也通过区域阿拉伯语时才提供英语数据。
在最近的参考中,区域设置具有适用于ISO 639-1/ISO 3166-1的语言/国家代码信息。
ISO 639-1 是两个字母的小写语言代码。阿拉伯语以这种格式定义。
您可以像这样设置阿拉伯语的区域设置:
Locale loc = new Locale("ar");
注意:
安卓区域设置参考:https://developer.android.com/reference/java/util/Locale.html
ISO 639-1 代码参考:https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes
希望它对你有用。