android 调用gps获取经纬度的方法大同小异,实则差不了多少。但是使用起来,有的方法看起来很冗杂,而且很不好用。下面为大家介绍中很简单的方法,而且是实时监听位置的变化。

  首先定义:

private Location location;
private String locationProvider;private LocationManager locationManager;

 

  然后再获取经纬度的时候直接调用getLocationInfo()这个方法,获取到location,就可以了。

 private void getLocationInfo() {        locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);        // 获取所有可用的位置提供器        List providers = locationManager.getProviders(true);        if (providers.contains(LocationManager.GPS_PROVIDER)) {            // 如果是GPS            locationProvider = LocationManager.GPS_PROVIDER;        }//    else if (providers.contains(LocationManager.NETWORK_PROVIDER)) {//       // 如果是Network//       locationProvider = LocationManager.NETWORK_PROVIDER;//    }        else {            Toast.makeText(this, "没有可用的位置提供器", Toast.LENGTH_SHORT).show();            return;        }        // 获取Location        Location location = locationManager.getLastKnownLocation(locationProvider);        if (location != null) {            // 不为空,显示地理位置经纬度            String jd =location.getLongitude();            String wd =location.getLatitude();        } else {            ToastUtils.showToast(this, "GPS未定位到位置");            System.out.println("GPS未定位到位置,请查看是否打开了GPS ?");        }        // 监视地理位置变化        locationManager.requestLocationUpdates(locationProvider, 2000, 1, locationListener);    }

 

    温馨提示:在android 5.0以后除了在AndroidManifest.xml里面申请权限之外,还要在调用方法之前去动态申请定位权限。

private void requestPermission() {    if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {        if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.ACCESS_COARSE_LOCATION)) {            ToastUtils.showToast(this, "您已经拒绝过一次了");        }        ActivityCompat.requestPermissions(this,                new String[]{Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION}, 0);    }}

更多相关文章

  1. Android(安卓)lbs位置服务
  2. Android根据当前时间获取前面的时间日期,或者之后的时间日期
  3. 获取手机中已安装apk文件信息(PackageInfo、ResolveInfo)(应用图
  4. Android(安卓)Handler消息机制中的ThreadLocal源码分析
  5. 获取手机的mac地址
  6. android 初始化时获得控件位置,宽高的属性
  7. Android(安卓)Task的应用
  8. android 中Bitmap 和 Drawable互换
  9. Android获取屏幕宽高新方法

随机推荐

  1. android使用jenkins进行自动化打包并且上
  2. Android设置窗口的背景图
  3. Android(安卓)自定义动态注册Broadcast框
  4. Android笔记:Android(安卓)使用Intent拨打
  5. Android(安卓)proguard -applymapping 导
  6. Android(安卓)TV 屏幕适配
  7. Android学习笔记(十二)——数据存储(SQLite
  8. Android(安卓)HTTP 服务
  9. android JNI入门 之helloworld
  10. SVN问题之——org.apache.subversion.jav