package com.baidu.location.demo; import com.baidu.baidulocationdemo.R; import com.baidu.location.LocationClientOption; import com.baidu.location.LocationClientOption.LocationMode; import com.baidu.location.service.LocationService; import com.baidu.location.service.Utils; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.CheckBox; import android.widget.EditText; import android.widget.RadioGroup; /*** * 展示定位sdk配置的示例,配置选项后调用的实际上是locationActivity的定位功能,但是覆盖了新的配置项 * 注意:有些选项存在缓存的原因,所有在选中后再取消依然会在定位结果中显示出来 * @author baidu * */ public class LocationOption extends Activity{ private RadioGroup selectLocMode,selectcoord; private EditText scanSpan; private CheckBox geolocation,poi,describe,director; private LocationClientOption option; private Button startLoc; private LocationService locService; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.locationconfig); selectLocMode = (RadioGroup)findViewById(R.id.selectMode); selectcoord = (RadioGroup)findViewById(R.id.selectCoordinates); scanSpan = (EditText)findViewById(R.id.frequence); geolocation = (CheckBox)findViewById(R.id.geolocation); poi = (CheckBox)findViewById(R.id.poiCheckBox); describe = (CheckBox)findViewById(R.id.Describe); director = (CheckBox)findViewById(R.id.Director); startLoc = (Button)findViewById(R.id.start); locService = ((LocationApplication)getApplication()).locationService; option = new LocationClientOption(); locService.stop(); } @Override protected void onResume() { // TODO Auto-generated method stub super.onResume(); startLoc.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub switch (selectLocMode.getCheckedRadioButtonId()) { case R.id.radio_hight: option.setLocationMode(LocationMode.Hight_Accuracy); break; case R.id.radio_low: option.setLocationMode(LocationMode.Battery_Saving); break; case R.id.radio_device: option.setLocationMode(LocationMode.Device_Sensors); break; default: break; } switch (selectcoord.getCheckedRadioButtonId()) { case R.id.radio_gcj02: option.setCoorType(Utils.CoorType_GCJ02); break; case R.id.radio_bd09ll: option.setCoorType(Utils.CoorType_BD09LL); break; case R.id.radio_bd09: option.setCoorType(Utils.CoorType_BD09MC); break; default: break; } try { int frequence = Integer.parseInt(scanSpan.getText().toString()); option.setScanSpan(frequence); } catch (Exception e) { // TODO: handle exception option.setScanSpan(3000); } /** * 地理位置信息 */ if(geolocation.isChecked()) option.setIsNeedAddress(true); else option.setIsNeedAddress(false); /** * 周边poi列表 */ if(poi.isChecked()) option.setIsNeedLocationPoiList(true); else option.setIsNeedLocationPoiList(false); /** * 位置语意化 */ if(describe.isChecked()) option.setIsNeedLocationDescribe(true); else option.setIsNeedLocationDescribe(false); /** * 方向 */ if(director.isChecked()) option.setNeedDeviceDirect(true); else option.setNeedDeviceDirect(false); /** * 设置前需停止定位服务,设置后重启定位服务才可以生效 */ locService.setLocationOption(option); Intent locIntent = new Intent(LocationOption.this, LocationActivity.class); locIntent.putExtra("from", 1); LocationOption.this.startActivity(locIntent); } }); } }