• 大小: 7KB
    文件类型: .java
    金币: 1
    下载: 0 次
    发布日期: 2021-06-09
  • 语言: Java
  • 标签: LBS  

资源简介

LBS获取城市名称,根据系统自带GPS获取经纬度来判断所在城市

资源截图

代码片段和文件信息

package com.taoche.qctt.activity;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.List;

import android.content.Context;
import android.location.Address;
import android.location.Criteria;
import android.location.Geocoder;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;

public class LBS {

    
    //public static String cityName = “深圳“;  //城市名    
    public static String cityName ;  //城市名    
        
    private static Geocoder geocoder;   //此对象能通过经纬度来获取相应的城市等信息    
        
    /**  
     * 通过地理坐标获取城市名  其中CN分别是city和name的首字母缩写  
     * @param context  
     */    
    public static void getCNBylocation(Context context){    
            
        geocoder = new Geocoder(context);    
        //用于获取Location对象,以及其他    
        LocationManager locationManager;     
        String serviceName = Context.LOCATION_SERVICE;    
        //实例化一个LocationManager对象    
        locationManager = (LocationManager)context.getSystemService(serviceName);    
        //provider的类型    
        String provider = LocationManager.NETWORK_PROVIDER;    
    
        Criteria criteria = new Criteria();    
        criteria.setAccuracy(Criteria.ACCURACY_FINE);   //高精度    
        criteria.setAltitudeRequired(false);    //不要求海拔    
        criteria.setBearingRequired(false); //不要求方位    
        criteria.setCostAllowed(false); //不允许有话费    
        criteria.setPowerRequirement(Criteria.POWER_LOW);   //低功耗    
            
        //通过最后一次的地理位置来获得Location对象    
        Location location = locationManager.getLastKnownLocation(provider);    
            
        String queryed_name = updateWithNewLocation(location);    
        if((queryed_name != null) && (0 != queryed_name.length())){    
                
            cityName = queryed_name;    
        }    
            
        /*  
         * 第二个参数表示更新的周期,单位为毫秒;第三个参数的含义表示最小距离间隔,单位是米  
         * 设定每30秒进行一次自动定位  
         */    
        locationManager.requestLocationUpdates(provider 30000 50    
                locationListener);    
        //移除监听器,在只有一个widget的时候,这个还是适用的    
        locationManager.removeUpdates(locationListener);    
    }    
        
    /**  
     * 方位改变时触发,进行调用  
     */    
    private final static LocationListener locationListener = new LocationListener() {    
        String tempCityName;    
        public void onLocationchanged(Location location) {    
                
            tempCityName = updateWithNewLocation(location);    
            if((tempCityName != null) && (tempCityName.length() != 0)){    
                    
                cityName = tempCityName;    
            }    
        }    
    

评论

共有 条评论