百度地图locationClient.start()没反应解决办法

protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.test_5);
		initViews();
		init();

		OnClickListener clickListener = new OnClickListener() {

			public void onClick(View v) {
				// TODO Auto-generated method stub
				String keyworld = "";// 此处要对输入进行校验

				if (v.getId() == R.id.product_1) {
					keyworld = PRODUCT_NAME[0];
				} else if (v.getId() == R.id.product_2) {
					keyworld = PRODUCT_NAME[1];
				} else if (v.getId() == R.id.product_3) {
					keyworld = PRODUCT_NAME[2];
				} else if (v.getId() == R.id.product_4) {
					keyworld = PRODUCT_NAME[3];
				} else if (v.getId() == R.id.product_5) {
					keyworld = PRODUCT_NAME[4];
				}
				//
			}
		};
		product_1.setOnClickListener(clickListener);
		product_2.setOnClickListener(clickListener);
		product_3.setOnClickListener(clickListener);
		product_4.setOnClickListener(clickListener);
		product_5.setOnClickListener(clickListener);

		locationClient.start();
		if (locationClient != null && locationClient.isStarted()) {
			Log.i("start", "location服务开始");
			locationClient.requestLocation();
		} else {
			Log.i("LocSDK_2.0_Demo1", "locClient is null or not started");
		}
		// 发起POI查询请求。请求过程是异步的,定位结果在上面的监听函数onReceivePoi中获取。
		if (locationClient != null && locationClient.isStarted())
			locationClient.requestPoi();
		locationData = new LocationData();

	}



public void init() {
		// 初始化application,如果BMapManager为Null,建立实例
		app = (DemoApplication) this.getApplication();
		Toast.makeText(Gift.this, "mBmapmanager=" + app.mBMapManager, 1).show();
		if (app.mBMapManager == null) {
			Toast.makeText(Gift.this, "再次初始化地图manager", 1).show();
			app.mBMapManager = new BMapManager(this);
			// DemoApplication用来验证key和网络连接,用getApplication()获得BMapManager实例
			app.mBMapManager.init(DemoApplication.strKey,
					new DemoApplication.MyGeneralListener());
		}
		// 实例化locationClient类
		locationClient = new LocationClient(getApplicationContext());
		// 注册监听事件,MyLocationListener两个重写方法处理相关操作
		locationClient.registerLocationListener(bdLocationListener);

		// 设置定位参数包括:定位模式(单次定位,定时定位),返回坐标类型,是否打开GPS等等
		LocationClientOption option = new LocationClientOption();
		option.setOpenGps(true);// 打开gps
		option.setCoorType("gcj02");
		option.setScanSpan(1000);
		// 发起定位请求。请求过程是异步的,定位结果在上面的监听函数onReceiveLocation中获取。
		locationClient.setLocOption(option);
		locationClient.start();

	}


请看以上代码,本人最近又开始研究百度地图定位问题,但是非常郁闷,这段代码明明以前写的时候是可以进行定位,现在却没反应,晕啊。

权限 user-permission 和 service 都加了

后来经过多方学习了解

把 locationClient = new LocationClient(this); 改成 locationClient = new LocationClient(getApplicationContext()); 就可以了。这是为什么啊。。不懂是不是和百度地图

定位sdk的版本有关,求大神解释。。


你可能感兴趣的:(android)