android获取当前位置的GPS经纬度

话不多说,直接上代码,哈哈哈哈哈哈哈哈
我就把讲解写在注释里面啦!!嘻嘻,这样方便点!!
因为我是在fragment里面获取,和activity不太一样,要注意上下文!

在mainifest里面添加权限

 <uses-permission android:name="android.permission.INTERNET" />
 <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
 private double lat;
 private double lon;
 public void getMyLocation() {
        String serviceString = getActivity().LOCATION_SERVICE;// 获取的是位置服务
        LocationManager locationManager = (LocationManager) getActivity().getSystemService(serviceString);// 调用getSystemService()方法来获取LocationManager对象
        String provider = LocationManager.GPS_PROVIDER;// 指定LocationManager的定位方法
        if (ActivityCompat.checkSelfPermission(getContext(), Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(getContext(), Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
        //这段是ALT+ENTER直接添加的,注意上下文就行了!
            // TODO: Consider calling
            //    ActivityCompat#requestPermissions
            // here to request the missing permissions, and then overriding
            //   public void onRequestPermissionsResult(int requestCode, String[] permissions,
            //                                          int[] grantResults)
            // to handle the case where the user grants the permission. See the documentation
            // for ActivityCompat#requestPermissions for more details.
            return;
        }
        Location location = locationManager.getLastKnownLocation(provider);// 调用getLastKnownLocation()方法获取当前的位置信息
        Log.i("Locator","location"+location);
        if (location != null){
            lat = location.getLatitude();//获取纬度
            lon = location.getLongitude();//获取经度
            Log.i("Locator","lat="+lat+","+"lon"+lon);
        }else{
            Log.i("Locator","location为空");

        }
        locationManager.requestLocationUpdates(provider, 2000, 10, locationListener);
// 产生位置改变事件的条件设定为距离改变10米,时间间隔为2秒,设定监听位置变化

    }

下面就是监听

    private final LocationListener locationListener = new LocationListener() {

        @Override
        public void onLocationChanged(Location location) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onProviderDisabled(String arg0) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onProviderEnabled(String arg0) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onStatusChanged(String arg0, int arg1, Bundle arg2) {
            // TODO Auto-generated method stub

        }

    };

然后在你需要的地方,调用getMyLocation()方法就可以啦!我把经纬度定义成成员变量,这个你看你自己!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值