Android 简单定位----Google Location Service的使用

       这段时间做国外地理定位,在项目中只需要用到定位,并不需要地图的其他服务,于是先使用了Android原生的位置获取,使用挺方便的,但是到最后死活获取不到postalCode(邮政编码),于是准备搞Google的位置服务试试。

一、先了解一下文档中的注意事项

      1、明确说明在8.0以后,后台对获取位置的时间做了限制,一个小时内只能获取几次,所有需要在后台使用服务需要注意。
      文档位置
Android 简单定位----Google Location Service的使用_第1张图片

      2、Google提供的位置服务有别于Android原生,两者是各自的API
在这里插入图片描述

二、添加依赖和需要的权限

      1、在app下gradle的dependencies里添加依赖

// 位置服务
implementation "com.google.android.gms:play-services-location:17.0.0"

      2、在AndroidManiFest中配置权限,当然动态权限也需要的


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

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

三、创建全局位置服务环境

1、在Activity的onCreate里初始化并添加监听

private FusedLocationProviderClient fusedLocationClient;
@Override
protected void onCreate(Bundle savedInstanceState) {
    
    fusedLocationClient = LocationServices.getFusedLocationProviderClient(this);
    fusedLocationClient.getLastLocation()
        .addOnSuccessListener(this, new OnSuccessListener<Location>() {
            @Override
            public void onSuccess(Location location) {
                if (location != null) {
                    // TODO
                }
            }
        });
}

2、因为是获取上一次定位的信息,所以location在以下几种情况会返回null
Android 简单定位----Google Location Service的使用_第2张图片

  1. 在定位服务被关闭的时候,因为关闭后会清除上次的定位信息
  2. 设备从未定位过
  3. 设备没有安装Google Service或被重启

后续更新监听…

你可能感兴趣的:(Android技术)