至于定位的配置之类的我就不多说,此篇文章重点在于接口回调
private static BDAbstractLocationListener mListener = new BDAbstractLocationListener() {
@Override
public void onReceiveLocation(BDLocation location) {
if (null != location && location.getLocType() != BDLocation.TypeServerError) {
switch (location.getLocType()) {
case BDLocation.TypeGpsLocation: // GPS定位结果
case BDLocation.TypeNetWorkLocation: // 网络定位结果
Map<String, Object> locationInfo = getLocationInfo(location.getLongitude(), location.getLatitude(), location.getAddrStr(), location.getLocationDescribe());
locationInfoInterface.getLocationInfo(locationInfo);
locationService.stop();
break;
case BDLocation.TypeServerError: //服务端网络定位失败,可以反馈IMEI号和大体定位时间到[email protected],会有人追查原因
case BDLocation.TypeNetWorkException: //网络不同导致定位失败,请检查网络是否通畅
case BDLocation.TypeCriteriaException: //无法获取有效定位依据导致定位失败,一般是由于手机的原因,处于飞行模式下一般会造成这种结果,可以试着重启手机
//定位失败
Log.i("test_loca", location.getLocType() + "");
locationService.stop();
break;
}
}
}
};
以上先贴出代码部分
1.添加接口LocationInfoInterface,并添加回调方法
2.添加接口set方法
public static void setLocationInfoInterface(LocationInfoInterface locationInfo){
locationInfoInterface = locationInfo;
}
3.将数据给接口的方法设置进去
locationInfoInterface.getLocationInfo(locationInfo);//locationInfoInterface可直接定义全局的
4.外部需要定位信息的调用者实现此接口
5.实现方法,获取定位信息
接口回调就是这么简单,希望能帮到更多朋友