集成百度定位,要在程序启动的时候就获取到位置信息,我就直接写到application节点里面,在初始化的时候开启定位,在接收到定位信息停止定位,这样的话只能定位一次,我想能不能让他多定位几次,我果断把stop方法去掉了.结果一直返回百度的默认值,有什么方法可以解决吗.
public class BaiLingApplication extends Application {
public LocationClient mLocationClient;
public MyLocationListener mMyLocationListener;
@Override
public void onCreate() {
super.onCreate();
mLocationClient = new LocationClient(this.getApplicationContext());
mMyLocationListener = new MyLocationListener();
mLocationClient.registerLocationListener(mMyLocationListener);
InitLocation();
mLocationClient.start();
if (!GlobalVar.isPrintLog) {
AppCrashHandler handler = AppCrashHandler.getInstance();
handler.init(getApplicationContext());
Thread.setDefaultUncaughtExceptionHandler(handler);
}
initSD();
}
/**
- 实现定位回调监听 */ public class MyLocationListener implements BDLocationListener {
@Override
public void onReceiveLocation(BDLocation location) {
GlobalVar.city_location = location.getCity();
Double longitude = location.getLongitude(); // 经度
Double latitude = location.getLatitude(); // 纬度
GlobalVar.longitude_latitude = String.valueOf(longitude) + "," + String.valueOf(latitude);
LogUtils.i(GlobalVar.longitude_latitude);
//如果去掉stop 的话.一直返回百度的默认值.不去掉的话只能定位一次,是key不对还是sha1值不对还是有其他的原因
mLocationClient.stop();
}
}
private void InitLocation() {
LocationClientOption option = new LocationClientOption();
option.setLocationMode(LocationMode.Hight_Accuracy);// 设置定位模式
option.setCoorType("bd09ll");// 返回的定位结果是百度经纬度,默认值gcj02
option.setScanSpan(5000);// 设置发起定位请求的间隔时间为5000ms
option.setIsNeedAddress(true);// 设置开启反地理编码
option.setEnableSimulateGps(true);// 设置是否需要过滤GPS仿真结果,默认需要
mLocationClient.setLocOption(option);
}