Geocoder getFromLocation()不是null,但总是大小为0

Adr*_*lar 5 android google-maps reverse-geocoding android-maps-v2

我正在尝试使用Google API v2检索我的位置地址.

这是我做的:

Geocoder geocoder = new Geocoder(this, Locale.getDefault());
            List<Address> addresses = null;
            String addressText = "";
            try {
                while (addresses==null){
                    addresses = geocoder.getFromLocation(userLocation.latitude,
                            userLocation.longitude, 1);
                }

                if (addresses != null && addresses.size() > 0) {
                    Address address = addresses.get(0);
                    addressText = String.format(
                            "%s, %s, %s",
                            address.getMaxAddressLineIndex() > 0 ? address
                                    .getAddressLine(0) : "", address
                                    .getLocality(), address.getCountryName());
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
Run Code Online (Sandbox Code Playgroud)

我已阅读了几篇帖子,发现getFromLocation()请求并不总是检索结果.所以我尝试循环.

这不会崩溃但是addressText总是"",任何想法为什么?INTERNET权限已经提供给我的应用程序.我不使用GPS.

userLocation不是null,所以这不是问题,我使用它来添加标记到地图,它工作正常.这似乎是地理编码器严格的问题.

Vip*_*hit 5

您可以通过两种方法获取地址1.使用Geocoder 2.使用Google API

您可以从此链接获得解决方案.它有两种解决方案.访问我的Google API解决方案的答案.

使用纬度和经度获取特定地址