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