0

我正在尝试根据经度和纬度使用地理编码器检索地址。有时我看到它抛出 IOException 说“服务不可用”并将地址返回为空。以下是我的相同代码:

public Address getAddress(double lat, double lng){
        if(Constants.LOCAL_LOG)Log.v(Constants.LOG_TAG, "CustomLocationManager : getAddress() START");
        Address address = null;
        if(Geocoder.isPresent()){
            Geocoder geocoder = new Geocoder(mContext);
            try {
                List<Address> addresses = geocoder.getFromLocation(lat, lng, 1);
                if(addresses != null && addresses.isEmpty() == false){
                    address = addresses.get(0);
                }
            } catch (IOException e) {
                Log.e(Constants.LOG_TAG, e.getMessage(), e);
            }
        }
        if(Constants.LOCAL_LOG)Log.v(Constants.LOG_TAG, "CustomLocationManager : getAddress() END");
        return address;
    }

抛出 IOException 并出现“服务不可用”的情况是什么。

让我知道如何解决这个问题。任何帮助将不胜感激。

4

2 回答 2

0

有时 google 不提供某些位置的地址。我在创建地理围栏应用程序时对其进行了测试。

所以当你得到地址时。检查空值

于 2013-10-04T12:58:24.863 回答
0

最好使用 NETWORK_PROVIDER 位置而不是 GPS_PROVIDER 在反向地理编码中获得正确的地址

locManager.requestLocationUpdates( LocationManager.NETWORK_PROVIDER, 0, 0, mlocListener);
于 2014-03-28T04:21:36.367 回答