com.amap.api.location

## 类 AMapLocationClient

- java.lang.Object
- - com.amap.api.location.AMapLocationClient

-     public class AMapLocationClient
      extends java.lang.Object

  定位服务类。此类提供单次定位、持续定位、最后位置相关功能。
  从以下版本开始:
    2.0.0
  版本:
    2.0.0

- - ### 构造器概要

    构造器
    构造器和说明
    `AMapLocationClient(Context context)` 构造方法

  - ### 方法概要

    所有方法 静态方法 实例方法 具体方法
    限定符和类型 | 方法和说明
    --- | ---
    `void` | `disableBackgroundLocation(boolean removeNotification)` 关闭后台定位功能 与`AMapLocationClient.enableBackgroundLocation(int, Notification)`配对使用 注意:关闭后台定位功能只是代表不再提供后台定位的能力，并不是停止定位，停止定位请调用`AMapLocationClient.stopLocation()`。
    `void` | `enableBackgroundLocation(int notificationId, Notification notification)` 开启后台定位功能 注意: 如果您设置了target>=28,需要增加android.permission.FOREGROUND_SERVICE权限, 如果您的app需要运行在Android Q版本的手机上，需要为ApsService增加android:foregroundServiceType="location"属性， 例：<service android:name="com.amap.api.location.APSService" android:foregroundServiceType="location"/> 主要是为了解决Android 8.0以上版本对后台定位的限制，开启后会显示通知栏,如果您的应用本身已经存在一个前台服务通知，则无需再开启此接口 注意:启动后台定位只是代表开启了后台定位的能力，并不代表已经开始定位，开始定位请调用`AMapLocationClient.startLocation()`。
    `static java.lang.String` | `getDeviceId(Context context)` 获取设备号
    `AMapLocation` | `getLastKnownLocation()` 获取最后位置
    `java.lang.String` | `getVersion()` 获取定位sdk版本信息
    `boolean` | `isStarted()` 本地定位服务是否已经启动，用于用户检查服务是否已经启动
    `void` | `onDestroy()` 销毁定位,释放定位资源, 当不再需要进行定位时调用此方法 该方法会释放所有定位资源，调用后再进行定位需要重新实例化AMapLocationClient
    `static void` | `setApiKey(java.lang.String apiKey)` 设置apikey 必须在AmapLocationClient实例化之前调用
    `void` | `setLocationListener(AMapLocationListener listener)` 设置定位回调监听
    `void` | `setLocationOption(AMapLocationClientOption option)` 设置定位参数
    `void` | `startAssistantLocation(WebView webView)` 启动H5辅助定位 只适用于Android 4.2及以后版本 该接口只用于配合Web JS API的H5辅助定位，开启后并没有开始定位，开始定位由JS API触发。
    `void` | `startLocation()` 开始定位
    `void` | `stopAssistantLocation()` 停止辅助定位 如果已经调用了startAssistantLocation接口，在destroy时请调用该接口
    `void` | `stopLocation()` 停止定位
    `void` | `unRegisterLocationListener(AMapLocationListener listener)` 移除定位监听
    `static void` | `updatePrivacyAgree(Context context, boolean isAgree)` 设置是否同意用户授权政策 必须在AmapLocationClient实例化之前调用
    `static void` | `updatePrivacyShow(Context context, boolean isContains, boolean isShow)` 设置包含隐私政策，并展示用户授权弹窗 必须在AmapLocationClient实例化之前调用

    - ### 从类继承的方法 java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### 构造器详细资料

    - #### AMapLocationClient

          public AMapLocationClient(Context context)
                             throws java.lang.Exception

      构造方法
      参数:
        `context` - Android上下文
      抛出:
        `java.lang.Exception`
      从以下版本开始:
        2.0.0

  - ### 方法详细资料

    - #### setLocationOption

          public void setLocationOption(AMapLocationClientOption option)

      设置定位参数
      参数:
        `option` - 定位参数
      从以下版本开始:
        2.0.0

    - #### setLocationListener

          public void setLocationListener(AMapLocationListener listener)

      设置定位回调监听
      参数:
        `listener` - 定位完成后的回调接口
      从以下版本开始:
        2.0.0

    - #### startLocation

          public void startLocation()

      开始定位
      从以下版本开始:
        2.0.0

    - #### stopLocation

          public void stopLocation()

      停止定位
      从以下版本开始:
        2.0.0

    - #### getLastKnownLocation

          public AMapLocation getLastKnownLocation()

      获取最后位置
      返回:
        最后一次定位的位置信息
      从以下版本开始:
        2.0.0

    - #### startAssistantLocation

          public void startAssistantLocation(WebView webView)

      启动H5辅助定位

    - 只适用于Android 4.2及以后版本
    - 该接口只用于配合Web JS API的H5辅助定位，开启后并没有开始定位，开始定位由JS API触发。
    - 建议在WebView控件初始化之后就调用该接口，尽量不要在WebView执行loadUrl之后调用

参数:
  `webView` - 自定义的webView
从以下版本开始:
  3.8.0

- #### stopAssistantLocation

      public void stopAssistantLocation()

  停止辅助定位

  如果已经调用了startAssistantLocation接口，在destroy时请调用该接口

  从以下版本开始:
    2.0.0

- #### getVersion

      public java.lang.String getVersion()

  获取定位sdk版本信息
  返回:
    sdk版本信息
  从以下版本开始:
    2.0.0

- #### updatePrivacyShow

      public static void updatePrivacyShow(Context context,
                                           boolean isContains,
                                           boolean isShow)

  设置包含隐私政策，并展示用户授权弹窗 必须在AmapLocationClient实例化之前调用
  参数:
    `context` -
    `isContains:` - 是隐私权政策是否包含高德开平隐私权政策 true是包含
    `isShow:` - 隐私权政策是否弹窗展示告知用户 true是展示
  从以下版本开始:
    5.6.0

- #### updatePrivacyAgree

      public static void updatePrivacyAgree(Context context,
                                            boolean isAgree)

  设置是否同意用户授权政策 必须在AmapLocationClient实例化之前调用
  参数:
    `context` -
    `isAgree:隐私权政策是否取得用户同意` - true是用户同意
  从以下版本开始:
    5.6.0

- #### setApiKey

      public static void setApiKey(java.lang.String apiKey)

  设置apikey 必须在AmapLocationClient实例化之前调用
  参数:
    `apiKey` - 要设置的apikey
  从以下版本开始:
    2.0.0

- #### isStarted

      public boolean isStarted()

  本地定位服务是否已经启动，用于用户检查服务是否已经启动
  返回:
    true:已经启动
  从以下版本开始:
    2.0.0

- #### unRegisterLocationListener

      public void unRegisterLocationListener(AMapLocationListener listener)

  移除定位监听
  参数:
    `listener` - 要移除的定位监听
  从以下版本开始:
    2.0.0

- #### onDestroy

      public void onDestroy()

  销毁定位,释放定位资源, 当不再需要进行定位时调用此方法

  该方法会释放所有定位资源，调用后再进行定位需要重新实例化AMapLocationClient

  从以下版本开始:
    2.0.0

- #### enableBackgroundLocation

      public void enableBackgroundLocation(int notificationId,
                                           Notification notification)

  开启后台定位功能 注意: 如果您设置了target>=28,需要增加android.permission.FOREGROUND_SERVICE权限,
  如果您的app需要运行在Android Q版本的手机上，需要为ApsService增加android:foregroundServiceType="location"属性， 例：<service android:name="com.amap.api.location.APSService" android:foregroundServiceType="location"/>

  主要是为了解决Android 8.0以上版本对后台定位的限制，开启后会显示通知栏,如果您的应用本身已经存在一个前台服务通知，则无需再开启此接口
  注意:启动后台定位只是代表开启了后台定位的能力，并不代表已经开始定位，开始定位请调用`AMapLocationClient.startLocation()`。
  建议：在整个APP中如果存在多个AMapLocationClient，只需要其中一个开启就可以了，无需重复启动，重复启动也只会显示一个通知栏。

  参数:
    `notificationId` - 通知栏ID,建议这个app唯一; 不能为0
    `notification` - 自定义通知栏，使用者可以根据自己业务需求自定义Notification，将创建好的Notification对象传入；不能为null
  从以下版本开始:
    3.8.0

- #### disableBackgroundLocation

      public void disableBackgroundLocation(boolean removeNotification)

  关闭后台定位功能

  与`AMapLocationClient.enableBackgroundLocation(int, Notification)`配对使用
  注意:关闭后台定位功能只是代表不再提供后台定位的能力，并不是停止定位，停止定位请调用`AMapLocationClient.stopLocation()`。
  如果在整个APP中如果有调用`AMapLocationClient.enableBackgroundLocation(int, Notification)`，必须调用该方法。
  如果同时有多个AMapLocationClient调用了`AMapLocationClient.enableBackgroundLocation(int, Notification)`，只有全部的client 都调用了disableBackgroundLocation（true),通知栏才会消失。

  注意：如果您设置了target>=28,需要增加android.permission.FOREGROUND_SERVICE权限

  参数:
    `removeNotification` - 是否移除通知栏， true：移除通知栏，false：不移除通知栏，可以手动移除

- #### getDeviceId

      public static java.lang.String getDeviceId(Context context)

  获取设备号
  参数:
    `context` -
  返回:
    设备号, 如果获取不到返回null
  从以下版本开始:
    4.5.1