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的版本有关,求大神解释。。