public class MainActivity extends Activity implements LocationListener {
private LocationManager locationManager;
private Location location;
private TextView tv;
private Button bt;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv = (TextView) findViewById(R.id.tv);
bt = (Button) findViewById(R.id.bt);
bt.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(location != null){
String longitude = Double.toString(location.getLongitude());//经度
String latitude = Double.toString(location.getLatitude());//纬度
tv.setText("经度:"+longitude+" ,纬度:"+latitude);
}else{
System.out.println("尚未获取到位置");
tv.setText("尚未获取到位置");
}
}
});
locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
//用于给应用提供一个最佳的位置坐标,综合考虑了经纬度,海拔,经度等
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);//高精度
criteria.setAltitudeRequired(false);//不要求海拔
criteria.setBearingRequired(false);//不要求方位
criteria.setCostAllowed(true);//允许有花费
criteria.setPowerRequirement(Criteria.POWER_LOW);//低功耗
//从可用的位置提供器中,匹配以上标准的最佳提供器
String provider = locationManager.getBestProvider(criteria, true);
//获得最后一次变化的位置
location = locationManager.getLastKnownLocation(provider);
locationManager.requestLocationUpdates(provider, 0, 0, this);
}
@Override
public void onLocationChanged(Location location) {
// TODO Auto-generated method stub
this.location = location;
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
// TODO Auto-generated method stub
}
@Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
}
}