fix bug and add gd loc

This commit is contained in:
zhongchao
2022-08-17 11:58:52 +08:00
parent 136d968005
commit e7637c9540
4 changed files with 81 additions and 12 deletions

View File

@@ -0,0 +1,60 @@
package com.mogo.map.location;
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;
import com.amap.api.location.AMapLocationListener;
public class GDLocationClient implements AMapLocationListener {
private volatile static GDLocationClient gdLocationClient;
private static final byte[] obj = new byte[0];
public static GDLocationClient getInstance(Context context) {
if (gdLocationClient == null) {
synchronized (obj) {
if (gdLocationClient == null) {
gdLocationClient = new GDLocationClient(context);
}
}
}
return gdLocationClient;
}
//声明LocationClient对象
private final AMapLocationClient mLocationClient;
private GDLocationClient(Context context) {
mLocationClient = new AMapLocationClient(context);
//初始化定位参数
//声明mLocationOption对象
AMapLocationClientOption mLocationOption = new AMapLocationClientOption();
//设置定位监听
mLocationClient.setLocationListener(this);
//设置定位模式为高精度模式Battery_Saving为低功耗模式Device_Sensors是仅设备模式
mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy);
//设置定位间隔,单位毫秒,默认为2000ms
mLocationOption.setInterval(1000);
//设置定位参数
mLocationClient.setLocationOption(mLocationOption);
}
public void start() {
mLocationClient.startLocation();
}
@Override
public void onLocationChanged(AMapLocation aMapLocation) {
if (aMapLocation != null) {
String cityCode = aMapLocation.getCityCode();
if (cityCode == null || cityCode.isEmpty()) {
Log.e("0817arrow", "gd city code is null");
} else {
Log.e("0817arrow", "gd city code is :" + cityCode);
}
}
}
}