Android GPS 定位 1

首先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());
		}
	};




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值