您的位置:首页 > 移动开发 > Android开发

android 定位当前城市

2013-11-01 18:47 357 查看
private void getLocationByLocationManager() {
		 LocationManager locationManager = 
	            (LocationManager)this.getSystemService(Context.LOCATION_SERVICE);
        LocationListener locationListener = new LocationListener() {
            public void onLocationChanged(Location location) {
                updateLocation(location);
            }
            public void onStatusChanged(
                    String provider, int status, Bundle extras) {}
            public void onProviderEnabled(String provider) {}
            public void onProviderDisabled(String provider) {}
        };
        locationManager.requestLocationUpdates(
                LocationManager.NETWORK_PROVIDER, 0, 0, locationListener);
        locationManager.removeUpdates(locationListener);
	}
	private void updateLocation(Location location){
        currentLocation = location;
        currentLatitude = currentLocation.getLatitude();
        currentLongitude = currentLocation.getLongitude();
        try{
            Geocoder gcd = new Geocoder(this, Locale.getDefault());
            List<Address> addresses = 
                gcd.getFromLocation(currentLatitude, currentLongitude,100);
            if (addresses.size() > 0) {
                StringBuilder result = new StringBuilder();
//                for(int i = 0; i < addresses.size(); i++){
//                    Address address =  addresses.get(i);
//                    int maxIndex = address.getMaxAddressLineIndex();
//                    for (int x = 0; x <= maxIndex; x++ ){
//                        result.append(address.getAddressLine(x));
//                        result.append(",");
//                    }   
//                    result.append(address.getLocality());
//                    result.append(",");
//                    result.append(address.getPostalCode());
//                    result.append("\n\n");
//                }
                
                result.append("AdminArea:"+addresses.get(0).getAdminArea()+",");
                result.append("SubAdminArea"+addresses.get(0).getSubAdminArea()+",");
                result.append("FeatureName"+addresses.get(0).getFeatureName()+",");
                result.append("Locality"+addresses.get(0).getLocality()+",");
                result.append("countryName"+addresses.get(0).getCountryName()+",");
                result.append("Premises"+addresses.get(0).getPremises()+",");
                result.append("SubLocality"+addresses.get(0).getSubLocality()+",");
                result.append("SubThoroughfare"+addresses.get(0).getSubThoroughfare()+",");
                result.append("Thoroughfare"+addresses.get(0).getThoroughfare()+",");
               LogUtil.e("NewLoc",result.toString());
            }
        }catch(IOException ex){
        }
    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: