安卓学习笔记:获取我们当前所在的位置

申请权限

AndroidManifest.xml中添加如下权限

    
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

注意:在安卓6.0以上的系统中,这个权限属于危险权限,得动态去申请。这个我们到后面再详细介绍。

LocationManger的基本用法

我们确定自己的位置,主要是通过LocationManager这个类实现的,下面介绍它的基本用法。

获取LocationManger的实例

LocationManager locationManager= (LocationManager)getSystemService(Context.LOCATION_SERVICE);

选择位置提供器

安卓中有如下的三种位置提供器:

  • GPS_PROVIDER:使用GPS定位。(精确,耗电)
  • NETWORK_PROVIDER:使用网络定位。(不太精确,耗电较少)
  • PASSIVE_PROVIDER:使用其他应用的定位信息。当其他应用使用定位更新了定位信息,系统会保存下来,该应用接收到消息后直接读取就可以了。

总之前两种的提供器更常用。

String provider =LocationManager.NETWORK_PROVIDER;
Location location=locationManager.getLastKnownLocation(provider);//通过提供器获取位置信息

上面的location里面就有经度,纬度,海拔等等等一系列信息,我们只要调用相应的方法获取就可以了。

监听位置的改变

由于我们是移动的,所以需要来监听位置的变化。

        locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 5000, 10, new LocationListener() {
            @Override
            public void onLocationChanged(Location location) {
                showLocation(location);//位置改变后,就调用展示位置信息的方法
            }

            @Override
            public void onStatusChanged(String s, int i, Bundle bundle) {

            }

            @Override
            public void onProviderEnabled(String s) {

            }

            @Override
            public void onProviderDisabled(String s) {

            }
        });

展示位置信息

    private void showLocation(Location location) {
        String currentLocation="";
        currentLocation="纬度:"+location.getLatitude()+"\n"+"经度:"+location.getLongitude();

        TextView textView=(TextView)this.findViewById(R.id.show_message);

        textView.setText(currentLocation);
    }

看看效果

最好是在自己的手机上面调试代码。我们就可以拿着手机到处走走(走的距离远点),发现经纬度确实会变化了。
安卓学习笔记:获取我们当前所在的位置_第1张图片

你可能感兴趣的:([,安卓,Android笔记,])