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 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.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?) //高德定位数据
}
}