Java io ioexception не может разобрать ответ от геокодера сервера
Я использую этот код для получения географических адресов:
private String getAddress(Location location)
{
try{
List<Address> addresses = new Geocoder(this,Locale.getDefault()).getFromLocation(location.getLatitude(), location.getLongitude(), 1);
if(addresses!=null)
{
String address="Address not available";
for(int i=0;i<addresses.size();i++)
{
Address addre=addresses.get(i);
String street=addre.getAddressLine(0);
if(null==street)
street="";
String city=addre.getLocality();
if(city==null) city="";
String state=addre.getAdminArea();
if(state==null) state="";
String country=addre.getCountryName();
if(country==null) country="";
address=street+", "+city+", "+state+", "+country;
}
return address;
}
}
catch (Exception e) {
return "Address not available";
}
return "Address not available";
}
Раньше я получал список адресов, но теперь я получаю каждый раз это исключение:
java.io.IOException unable to parse response from server
Пожалуйста, помогите.
Ответы
Ответ 1
Наконец, я получил решение своей проблемы.
Если вы пытаетесь поразить сервер очень часто (несколько раз в минуту) для получения адреса с lat, то вы можете получить это исключение. Решения этой проблемы могут быть:
1. Пожалуйста, попробуйте избежать нескольких обращений за адресом через минуту.
2-Запустите этот код на другом устройстве.
Если вы хотите запустить этот код на одном устройстве, очистите данные приложения (или удалите приложение) и подождите некоторое время.
Ответ 2
У меня была такая же проблема с моей Samsung Galaxy Tab 10.1. Я ищу часы для решения, и ничего не помогло. Чтобы устранить проблемы, выполните следующие действия:
Перейдите в Настройки местоположения и включите:
1. Использование беспроводных сетей
2. Использование GPS-спутников
ждать исправления местоположения GPS
После этого сервер геокодирования ответил. Даже когда я отключил беспроводное и GPS-местоположение, сервер работал. Я думаю, что геокодер может использоваться только в том случае, если вы поделитесь своим местоположением с Google.
Ответ 3
Мое решение было:
Settings > Date & Time > Automatic date & time (Use network-provided time)
Ответ 4
В моей проблеме возникли не соответствующие разрешения для геокодера
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
Ответ 5
У меня была такая же проблема.
Я добавил это разрешение
android.permission.WRITE_EXTERNAL_STORAGE
и это сработало хорошо.