手机定位详解

原创 2015年07月06日 23:28:26

安卓手机定位需要用到LocationManger,获取到LocationManager服务后,先判断下GPS是否开启,

如果开启,就通过LocationManager调用requestLocationUpdates方法对其设置监听,监听的方式设为GPS

如果没有开启,监听方式则设为network。要添加位置的权限



public class GpsService extends Service {
	LocationManager lm;
	SharedPreferences sf;
	Editor et;
	LocationListener listener;
	@Override
	public void onCreate() {
		// TODO Auto-generated method stub
		super.onCreate();
		Log.i("huang", "开启服务成功");
		Toast.makeText(GpsService.this, "开启服务成功", 1).show();
		
		sf=getSharedPreferences("config", MODE_PRIVATE);
		et=sf.edit();
		
		//监听回调函数
		listener=new LocationListener() {
			
			@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
				
			}
			
			@Override
			public void onLocationChanged(Location location) {
				// TODO Auto-generated method stub
				double longitude = location.getLongitude();
				double latitude = location.getLatitude();
				Toast.makeText(GpsService.this, "j:"+longitude+"/w:"+latitude, 1).show();
				et.putString("lastlocation", "j:"+longitude+"/w:"+latitude);
				et.commit();
			}
		};
		
		lm=(LocationManager) getSystemService(LOCATION_SERVICE);
		//判断gps是否打开,没打开则用网络定位
		if(lm.isProviderEnabled(LocationManager.GPS_PROVIDER)){
			Log.i("huang", "gps");
			Toast.makeText(GpsService.this, "gps", 1).show();
			//第一个参数是设置用那种方式定位,第二个是多长时间更新一次,毫秒单位
			//第三个是移动多少米更新一次,
			//第四个是监听的回调
			lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 1, listener);
			
		}
		else 
		{
			Log.i("huang", "network");
			Toast.makeText(GpsService.this, "network", 1).show();
			lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 1000, 1, listener);
			
		}
	}
	@Override
	public IBinder onBind(Intent intent) {
		// TODO Auto-generated method stub
		return null;
	}
}



需要的权限

<span style="white-space:pre">	</span><!--获取精准位置的权限  -->
	<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
	<!--获取粗略位置的权限  -->
	<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />



版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

GPS、Wifi等各种手机定位方式的含义及原理详解

原版地址:【科普】GPS、Wifi等各种手机定位方式的含义及原理详解 http://bbs.feng.com/read-htm-tid-7709847.html 最近看到好多FY对手机定位...

反手机定位再也不怕女友查岗.kdh

  • 2013年04月18日 11:56
  • 1.48MB
  • 下载

【百度地图JavaScript API】手机端浏览器定位的实现

准备工作 开始动工 总结 准备工作 百度地图API JavaScript APIv2.0 eclipse eclipse-jee-kepler-SR2-win32-x86_64 tom...

定位亲人手机

  • 2015年09月04日 16:04
  • 190KB
  • 下载

手机定位软件

  • 2016年09月06日 09:06
  • 17.44MB
  • 下载

用手机gps定位获得准确的百度地图经纬度

我们的踩点工作人员一直反应用手机踩回来的gps坐标,在百度地图上偏差非常大,一直怀疑我们的程序有问题; 为了处理这个问题,我们做了专项的分析跟踪.结果证实了手机踩点的精度还是非常高的,我们采集了几套数...
  • sxhong
  • sxhong
  • 2012年07月04日 11:46
  • 75267

手机自动定位软件PDX2.0说明书

  • 2013年06月11日 13:09
  • 29KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:手机定位详解
举报原因:
原因补充:

(最多只允许输入30个字)