package com.casic.smarttube.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 getCurrentLocation(context: Context, listener: ILocationListener) { val locationClient = AMapLocationClient(context) val locationOption = AMapLocationClientOption() //设置定位模式为高精度模式,AMapLocationMode.Battery_Saving为低功耗模式,AMapLocationMode.Device_Sensors是仅设备模式 locationOption.locationMode = AMapLocationClientOption.AMapLocationMode.Hight_Accuracy locationOption.isNeedAddress = false //设置是否返回地址信息(默认返回地址信息) //给定位客户端对象设置定位参数 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?) //高德定位数据 } }