Android: Nexus One - геокодер вызывает IOException - отлично работает с другими устройствами и эмулятором - PullRequest
6 голосов
/ 18 января 2010

Приведенный ниже код отлично работает для реальных устройств, работающих на 1.5, 1.6 и 2.0, а также эмулятор, работающий на 2.1.

Однако, выполняя это на Nexus One (работает 2.1) вызывает IOException:

java.io.IOException: Unable to parse response from server
at android.location.Geocoder.getFromLocation(Geocoder.java:124)

Вот фрагмент кода, где это происходит:

Double myLatitude = AppObject.myLocation.getLatitude();
Double myLongitude = AppObject.myLocation.getLongitude();
DEBUG.i(TAG, "My location: " + myLatitude + " | " + myLongitude);
Geocoder geocoder = new Geocoder(MainActivity.this);
java.util.List<Address> addressList;
try {
    addressList = geocoder.getFromLocation(myLatitude, myLongitude, 5);
    if(addressList!=null && addressList.size()>0) {
        currentAddress = new String();
        DEBUG.i(TAG,addressList.get(0).toString());
        currentAddress = addressList.get(0).getAddressLine(0) + ", "
        + addressList.get(0).getAddressLine(1) + ", "
        + addressList.get(0).getAddressLine(2); 

    }
    return true;

} catch (IOException e) {
    e.printStackTrace();
    return false;
}

Ответы [ 2 ]

1 голос
/ 23 августа 2011

Привет, я попал в ту же проблему и ту же ситуацию. Я получил Nexus One, и я нашел обходной путь, чтобы заставить addressList = geocoder.getFromLocation(myLatitude, myLongitude, 1); работать. Вам просто нужно перезагрузить устройство. Что я заметил, так это то, что метод Geocoder getFromLocation не знает о каких-либо изменениях в настройках Locale (в моем случае перестал работать метод, это изменение моей локали по умолчанию). После перезагрузки все заработало. У кого-нибудь есть разумная причина для этого? (Простите за игру в слова :-P)

0 голосов
/ 04 ноября 2011

Я использую HTC Tmobile G2, и у меня возникла та же проблема при тестировании функции на основе GeoCoder. Перезагрузка помогла, но это неприемлемое решение, когда мои клиенты начинают жаловаться на это. Если это какая-то проблема очистки кеша, то я надеюсь, что можно обойтись программным путем.

...