在android中请求最近的城市

时间:2013-05-16 17:07:13

标签: java android locationmanager

我需要仅使用网络提供商计算Android应用中的近城。 我设法使用以下代码执行此操作,但它会使应用程序变得非常慢并且仅在某些情况下有效。



public Locator(final Context c) {

        LocationManager locationManager = (LocationManager) c.getSystemService(Context.LOCATION_SERVICE);
        Location location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
        Geocoder gcd = new Geocoder(c, Locale.getDefault());
        List addresses;
        try {
            addresses = gcd.getFromLocation(location.getLatitude(), location.getLongitude(), 1);
            if (addresses.size() > 0) {
                if(addresses.get(0).getLocality()!=null){
                    Locator.setCity(addresses.get(0).getLocality());
                }
            }
        }
        catch (IOException e) {
            e.printStackTrace();
        }       
    }

有什么想法吗?

提前致谢。

1 个答案:

答案 0 :(得分:2)

您可以尝试Google Place API。这是example & tutorial