高德地图
获得地理位置
defaultConfig { ndk { abiFilters 'armeabi', 'armeabi-v7a', 'x86', 'arm64-v8a','x86_64' } }
<meta-data
android:name="com.amap.api.v2.apikey"
android:value="ea90afe2b8b212594ebc96fef610e384">
</meta-data>
<service android:name="com.amap.api.location.APSService"></service>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.BLUETOOTH" />
implementation 'com.amap.api:location:latest.integration'
import android.content.Context
import com.amap.api.location.AMapLocation
import com.amap.api.location.AMapLocationClient
import com.amap.api.location.AMapLocationClientOption
import com.amap.api.location.AMapLocationListener
/**
* 公司:江苏再出发网络科技有限公司
* 作者:Android 倪震宇
* 创建时间:2020/12/30
* 功能描述:
*/
class GaoDeLocation {
companion object {
fun getLocation(mc: Context, ok: (AMapLocation) -> Unit) {
val mLocationListener = object : AMapLocationListener {
override fun onLocationChanged(location: AMapLocation?) {
location?.let {
ok(it)
}
}
}
val mLocationClient = AMapLocationClient(mc.applicationContext)
mLocationClient.setLocationListener(mLocationListener)
mLocationClient.startLocation()
}
fun getLocationByOnce(mc: Context, ok: (AMapLocation) -> Unit) {
val option = AMapLocationClientOption()
option.setOnceLocation(true);
option.setOnceLocationLatest(true);
val mLocationClient = AMapLocationClient(mc.applicationContext)
val mLocationListener = object : AMapLocationListener {
override fun onLocationChanged(location: AMapLocation?) {
location?.let {
ok(it)
mLocationClient.stopLocation()
}
}
}
mLocationClient.setLocationOption(option)
mLocationClient.setLocationListener(mLocationListener)
mLocationClient.startLocation()
}
}
}