获取当前环境下最佳的位置提供者



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

}


}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值