package com.baidu.baidulocationdemo;
import com.baidu.location.LocationClient;
import com.baidu.location.LocationClientOption;
import com.baidu.location.LocationClientOption.LocationMode;
import android.app.Activity;
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;
import android.widget.RadioGroup.OnCheckedChangeListener;
import android.widget.TextView;
public class LocationActivity extends Activity {
private LocationClient mLocationClient;
private TextView LocationResult, ModeInfor;
private Button startLocation;
private RadioGroup selectMode, selectCoordinates;
private EditText frequence;
private LocationMode tempMode = LocationMode.Hight_Accuracy;
private String tempcoor = "gcj02";
private CheckBox checkGeoLocation;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.location);
mLocationClient = ((LocationApplication) getApplication()).mLocationClient;
LocationResult = (TextView) findViewById(R.id.textView1);
ModeInfor = (TextView) findViewById(R.id.modeinfor);
ModeInfor.setText(getString(R.string.hight_accuracy_desc));
((LocationApplication) getApplication()).mLocationResult = LocationResult;
frequence = (EditText) findViewById(R.id.frequence);
checkGeoLocation = (CheckBox) findViewById(R.id.geolocation);
startLocation = (Button) findViewById(R.id.addfence);
startLocation.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
InitLocation();
if (startLocation.getText().equals(
getString(R.string.startlocation))) {
mLocationClient.start();
startLocation.setText(getString(R.string.stoplocation));
} else {
mLocationClient.stop();
startLocation.setText(getString(R.string.startlocation));
}
}
});
selectMode = (RadioGroup) findViewById(R.id.selectMode);
selectCoordinates = (RadioGroup) findViewById(R.id.selectCoordinates);
selectMode.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
// TODO Auto-generated method stub
String ModeInformation = null;
switch (checkedId) {
case R.id.radio_hight:
tempMode = LocationMode.Hight_Accuracy;
ModeInformation = getString(R.string.hight_accuracy_desc);
break;
case R.id.radio_low:
tempMode = LocationMode.Battery_Saving;
ModeInformation = getString(R.string.saving_battery_desc);
break;
case R.id.radio_device:
tempMode = LocationMode.Device_Sensors;
ModeInformation = getString(R.string.device_sensor_desc);
break;
default:
break;
}
ModeInfor.setText(ModeInformation);
}
});
selectCoordinates
.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
// TODO Auto-generated method stub
switch (checkedId) {
case R.id.radio_gcj02:
tempcoor = "gcj02";
break;
case R.id.radio_bd09ll:
tempcoor = "bd09ll";
break;
case R.id.radio_bd09:
tempcoor = "bd09";
break;
default:
break;
}
}
});
}
@Override
protected void onStop() {
// TODO Auto-generated method stub
mLocationClient.stop();
super.onStop();
}
private void InitLocation() {
LocationClientOption option = new LocationClientOption();
option.setLocationMode(tempMode);//设置定位模式
option.setCoorType(tempcoor);//返回的定位结果是百度经纬度,默认值gcj02
int span = 1000;
try {
span = Integer.valueOf(frequence.getText().toString());
} catch (Exception e) {
// TODO: handle exception
}
option.setScanSpan(span);//设置发起定位请求的间隔时间为5000ms
option.setIsNeedAddress(checkGeoLocation.isChecked());
mLocationClient.setLocOption(option);
}
}
LoginActivity
最新推荐文章于 2022-10-20 14:51:15 发布