Android GPS 定位 1

来源:互联网 发布:mac开机按commandr 编辑:程序博客网 时间:2024/05/21 06:28

首先AndroidManifest中加入许可

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />    <uses-permission android:name="android.permission.INTERNET" />

通过系统服务获取LocationManager
LocationManager manager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);

设定定位需要的标准
Criteria criteria = new Criteria();criteria.setAccuracy(Criteria.ACCURACY_COARSE);//criteria.setAccuracy(Criteria.ACCURACY_FINE); 如果是fine,那就是调用GPS了,室内基本是没希望能定位了啦criteria.setCostAllowed(true);criteria.setPowerRequirement(Criteria.POWER_LOW);criteria.setAltitudeRequired(false);criteria.setBearingRequired(false);

接下来就可以获取定位信息
String provider = manager.getBestProvider(criteria, true);Location location = manager.getLastKnownLocation(provider);

这里location可能是null,如果是null那就需要更新定位信息
if (location != null) {latitudeTxt.setText("latitude:" + location.getLatitude());longitudeTxt.setText("longitude:" + location.getLatitude());} else {manager.requestLocationUpdates(provider, 1*1000, 1000, listener);}

private LocationListener listener = new LocationListener() {public void onStatusChanged(String provider, int status, Bundle extras) {// TODO Auto-generated method stub}//定位设备启用是时public void onProviderEnabled(String provider) {Log.d(TAG, "onProviderEnabled");}public void onProviderDisabled(String provider) {// TODO Auto-generated method stub}//定位获得信息改变时public void onLocationChanged(Location location) {Log.d(TAG, "onLocationChanged");latitudeTxt.setText("latitude:" + location.getLatitude());longitudeTxt.setText("longitude:" + location.getLatitude());}};




原创粉丝点击