Android得到地理位置并分析出具体城市

Java代码 
/**
     * 通过GPS得到城市名
     * 
     * @param context
     *            一個Activity
     * @return 城市名
     */ 
    public static String getCityName(Context context) { 
        LocationManager locationManager; 
        String contextString = Context.LOCATION_SERVICE; 
        locationManager = (LocationManager) context.getSystemService(contextString); 
        Criteria criteria = new Criteria(); 
        criteria.setAccuracy(Criteria.ACCURACY_FINE); 
        criteria.setAltitudeRequired(false); 
        criteria.setBearingRequired(false); 
        criteria.setCostAllowed(false); 
        criteria.setPowerRequirement(Criteria.POWER_LOW); 
        String cityName = null; 
        // 取得效果最好的criteria 
        String provider = locationManager.getBestProvider(criteria, true); 
        if (provider == null) { 
            return null; 
        } 
        // 得到坐标相关的信息 
        Location location = locationManager.getLastKnownLocation(provider); 
        if (location == null) { 
            return null; 
        } 
 
        if (location != null) { 
            double latitude = location.getLatitude(); 
            double longitude = location.getLongitude(); 
            // 更具地理环境来确定编码 
            Geocoder gc = new Geocoder(context, Locale.getDefault()); 
            try { 
                // 取得地址相关的一些信息\经度、纬度 
                List<Address> addresses = gc.getFromLocation(latitude, longitude, 1); 
                StringBuilder sb = new StringBuilder(); 
                if (addresses.size() > 0) { 
                    Address address = addresses.get(0); 
                    sb.append(address.getLocality()).append("\n"); 
                    cityName = sb.toString(); 
                } 
            } catch (IOException e) { 
            } 
        } 
        return cityName; 
    }


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值