导入jar包
在Activity中
//声明AMapLocationClient类对象 private AMapLocationClient locationClient = null; //声明定位回调监听器 private AMapLocationClientOption locationOption = null;
public void GaodeMap(){//初始化 Log.e("-----进入定位----","-----------"); locationClient = new AMapLocationClient(this.getApplicationContext()); locationOption = new AMapLocationClientOption(); // 设置定位模式为高精度模式 locationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy); // 设置定位监听 locationClient.setLocationListener(this); initOption(); // 设置定位参数 locationClient.setLocationOption(locationOption); // 启动定位 locationClient.startLocation(); // mHandler.sendEmptyMessage(GaoDeUtlis.MSG_LOCATION_START); } // 根据控件的选择,重新设置定位参数 private void initOption() { //定位一次 locationOption.setOnceLocation(true); // 设置是否需要显示地址信息 locationOption.setNeedAddress(true); /** * 设置是否优先返回GPS定位结果,如果30秒内GPS没有返回定位结果则进行网络定位 * 注意:只有在高精度模式下的单次定位有效,其他方式无效 */ locationOption.setGpsFirst(true); // 设置是否开启缓存 locationOption.setLocationCacheEnable(true); //设置是否等待设备wifi刷新,如果设置为true,会自动变为单次定位,持续定位时不要使用 locationOption.setOnceLocationLatest(false); // 设置发送定位请求的时间间隔,最小值为1000,如果小于1000,按照1000算 locationOption.setInterval(1000); } // 停止定位 private void stopDaoDeMap(){ locationClient.stopLocation(); // mHandler.sendEmptyMessage(GaoDeUtlis.MSG_LOCATION_STOP); }
//监听定位返回数据 @Override public void onLocationChanged(AMapLocation aMapLocation) { if (null != aMapLocation) { String result = aMapLocation.getProvince();//获取返回数据的省份 Log.e(TAG, "----------定位位置---------"+result); } }