即使设置为英语,地理编码器 returns 位置也会以另一种语言显示
Geocoder returns location in another language even when set to english
我正在使用以下代码,我已经尝试了关于堆栈溢出的大部分答案,但它仍然returns某些用户的不同语言的位置。
发生了什么:
对于某些用户,即使我将默认语言设置为英语,它 returns 尼泊尔语的位置。我确实尝试将 phone 的语言更改为尼泊尔语,但它返回的是英语。
我的代码:
创建片段
Locale.setDefault(Locale.ENGLISH);
LocationRetreive(locationLatitude, locationLongitude);
方法
private void LocationRetreive(Double locationLatitude, Double locationLongitude) {
try {
Geocoder geocoder = new Geocoder(getContext(), Locale.getDefault());
List<Address> addresses = geocoder.getFromLocation(locationLatitude, locationLongitude, 1);
if (addresses != null && addresses.size() > 0) {
string_city = addresses.get(0).getLocality();
string_state = addresses.get(0).getAdminArea();
string_country = addresses.get(0).getCountryName();
string_location = addresses.get(0).getAddressLine(0);
if (string_country == null) {
if (string_state != null) {
string_country = string_state;
} else if (string_city != null) {
string_country = string_city;
} else {
string_country = "null";
}
}
if (string_city == null) {
if (string_state != null) {
string_city = string_state;
} else {
string_city = string_country;
}
}
if (string_state == null) {
if (string_city != null) {
string_state = string_city;
} else {
string_state = string_country;
}
}
if (string_location == null) {
string_location = "Null";
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
可能是什么原因?
尝试
Locale.setDefault(new Locale("en", "GB"));
Locale new_locale = Locale.getDefault();
相反。
我正在使用以下代码,我已经尝试了关于堆栈溢出的大部分答案,但它仍然returns某些用户的不同语言的位置。
发生了什么:
对于某些用户,即使我将默认语言设置为英语,它 returns 尼泊尔语的位置。我确实尝试将 phone 的语言更改为尼泊尔语,但它返回的是英语。
我的代码:
创建片段
Locale.setDefault(Locale.ENGLISH);
LocationRetreive(locationLatitude, locationLongitude);
方法
private void LocationRetreive(Double locationLatitude, Double locationLongitude) {
try {
Geocoder geocoder = new Geocoder(getContext(), Locale.getDefault());
List<Address> addresses = geocoder.getFromLocation(locationLatitude, locationLongitude, 1);
if (addresses != null && addresses.size() > 0) {
string_city = addresses.get(0).getLocality();
string_state = addresses.get(0).getAdminArea();
string_country = addresses.get(0).getCountryName();
string_location = addresses.get(0).getAddressLine(0);
if (string_country == null) {
if (string_state != null) {
string_country = string_state;
} else if (string_city != null) {
string_country = string_city;
} else {
string_country = "null";
}
}
if (string_city == null) {
if (string_state != null) {
string_city = string_state;
} else {
string_city = string_country;
}
}
if (string_state == null) {
if (string_city != null) {
string_state = string_city;
} else {
string_state = string_country;
}
}
if (string_location == null) {
string_location = "Null";
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
可能是什么原因?
尝试
Locale.setDefault(new Locale("en", "GB"));
Locale new_locale = Locale.getDefault();
相反。