欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android手机GPS定位功能的简单应用讲解

程序员文章站 2022-07-02 19:55:41
android手机gps定位功能的简单应用讲解,android手机的gps定位功能在android开发中很常见,是最基本的应用功能,大多数智能手机都带有gps芯片,硬件底层和软件驱...

android手机gps定位功能的简单应用讲解,android手机的gps定位功能在android开发中很常见,是最基本的应用功能,大多数智能手机都带有gps芯片,硬件底层和软件驱动就省了,我们只管调y用gps相应的函数接口就能获取经纬度。明确一下基本功能:实现每隔2秒获取一次gps经纬度,用累加的方式计算行程,并保存到sqlite数据中。

首先,获取经纬度的方法为lm.requestlocationupdates(locationmanager.gps_provider,2000,1,locationlistener);其中locationmanager.gps_provider为本位所采用的位置提供其,locationlistener为位置监听方法。locationlistener方法实现具体细节如下:

private final locationlistener locationlistener = new locationlistener(){
	
		@override
		public void onlocationchanged(location location) {
			// todo auto-generated method stub
			updatewithnewlocation(location);
		}

		@override
		public void onproviderdisabled(string provider) {
			// todo auto-generated method stub
			updatewithnewlocation(null);
		}
		
		@override
		public void onproviderenabled(string provider) {
			// todo auto-generated method stub
			
		}

		@override
		public void onstatuschanged(string provider, int status, bundle extras) {
			// todo auto-generated method stub
			
		}
		
	};
	
	private void updatewithnewlocation(location location) {
		if (location != null) {
			string time = string.valueof(utils.formatdate(location.gettime()));
			double lat = location.getlatitude();
			double lng = location.getlongitude();
			string battery = constants.currlevel+"%";
			
			if(n>2){
				count+=mymethod.getdistancefromxtoy(lat, lng, relat, relon);
				relon=lng;
				relat=lat;
			}
			else {
				relon =lng;
				relat =lat;
				n++;
			}
			
			db.insertgps(time, battery, lat, lng, count);
			
			intent intent=new intent();
			intent.putextra("time", time);
			intent.putextra("count", count);
			intent.setaction("android.intent.action.test");
			sendbroadcast(intent);
		}else{
		}
	}