package com.baidu.location.demo; 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.EditText; import android.widget.RadioGroup; import com.baidu.baidulocationdemo.R; import com.baidu.location.LocationClientOption; import com.baidu.location.LocationClientOption.LocationMode; import com.baidu.location.service.LocationService; /*** * 展示定位sdk自定义定位模式,注意!设置setOpenAutoNotifyMode后,setScanSpan会失效,回调由setOpenAutoNotifyMode内设置的数值决定 * @author baidu * */ public class LocationAutoNotify extends Activity{ private RadioGroup selectLocMode; private EditText distance,time; private Button startLoc; private LocationService locService; private LocationClientOption mOption; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.autonotifyconfig); selectLocMode = (RadioGroup)findViewById(R.id.autonotify_selectMode); distance = (EditText)findViewById(R.id.autonotify_distance); time = (EditText)findViewById(R.id.autonotify_time); startLoc = (Button)findViewById(R.id.autonotify_start); locService = ((LocationApplication)getApplication()).locationService; mOption = new LocationClientOption(); mOption = locService.getDefaultLocationClientOption(); mOption.setOpenAutoNotifyMode(); //设置默认值 } @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 int setFrequence = 60*1000; int setDistance = 100; int setSensitivity = LocationClientOption.LOC_SENSITIVITY_HIGHT; switch (selectLocMode.getCheckedRadioButtonId()) { case R.id.radio_hight: setSensitivity = LocationClientOption.LOC_SENSITIVITY_HIGHT; break; case R.id.radio_low: mOption.setLocationMode(LocationMode.Battery_Saving); setSensitivity = LocationClientOption.LOC_SENSITIVITY_MIDDLE; break; case R.id.radio_device: mOption.setLocationMode(LocationMode.Device_Sensors); setSensitivity = LocationClientOption.LOC_SENSITIVITY_LOW; break; default: break; } try { setDistance = Integer.parseInt(distance.getText().toString()); }catch (Exception e){ setDistance = 100; } try { setFrequence = Integer.parseInt(time.getText().toString()); }catch (Exception e){ setFrequence = 60*1000; } /** * 设置前需停止定位服务,设置后重启定位服务才可以生效 */ mOption.setOpenAutoNotifyMode(setFrequence,setDistance,setSensitivity); locService.setLocationOption(mOption); Intent locIntent = new Intent(LocationAutoNotify.this, LocationActivity.class); locIntent.putExtra("from", 1); LocationAutoNotify.this.startActivity(locIntent); } }); } }