至于定位的配置之类的我就不多说,此篇文章重点在于接口回调
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.实现方法,获取定位信息
接口回调就是这么简单,希望能帮到更多朋友