Newer
Older
SmartKitchen / app / src / main / java / com / casic / br / utils / LocationHelper.kt
package com.casic.br.utils

import android.content.Context
import android.util.Log
import com.amap.api.location.AMapLocation
import com.amap.api.location.AMapLocationClient
import com.amap.api.location.AMapLocationClientOption

object LocationHelper {
    private const val kTag = "LocationHelper"

    fun obtainCurrentLocation(context: Context, listener: ILocationListener) {
        val locationClient = AMapLocationClient(context)
        val locationOption = AMapLocationClientOption()
        //设置定位模式为高精度模式,AMapLocationMode.Battery_Saving为低功耗模式,AMapLocationMode.Device_Sensors是仅设备模式
        locationOption.locationMode = AMapLocationClientOption.AMapLocationMode.Hight_Accuracy
        locationOption.isOnceLocation = true
        locationClient.setLocationOption(locationOption)
        locationClient.setLocationListener {
            if (it.errorCode == 0) {
                listener.onAMapLocationGet(it)
            } else {
                listener.onAMapLocationGet(null)
                //显示错误信息ErrCode是错误码,errInfo是错误信息,详见错误码表。
                Log.e(
                    kTag, "location Error, ErrCode: ${it.errorCode} , errInfo: ${it.errorInfo}"
                )
            }
        }
        locationClient.startLocation()
    }

    interface ILocationListener {
        fun onAMapLocationGet(aMapLocation: AMapLocation?) //高德定位数据
    }
}