用户定位location

原创 2013年12月04日 09:50:03

 

User Location能做什么?
1、获取用户的位置
2、追踪用户的移动

GPS定位比较准确,但是很费电

 


GPS定位:使用GPS卫星定位,需要在AndroidManifest.xml中声明权限:

NETWORK定位:使用信号接收塔和WIFI介入点进行定位,需要在AndroidManifest.xml文件中声明权限:

1、Location Manager:用户管理android用户定位的服务
2、Location Providers:提供了多种定位方式供开发者选择

Criteria可以设置一系列的查询条件,可以根据指定的Criteria条件来过滤获得LocationProvider
不同的LocationProvider决定了定位能力,包括费用、耗电多少、精确度,还会有一些方向、速度、和高速信息。

获取用户当前位置的步骤:
1、在AndroidManifest.xml当中声明权限
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
2、获取LocationManager对象
3、选择LocationProvider
4、绑定LocationListener对象

 

public class MainActivity extends Activity {
	LocationManager lm;
	MyLocationListener listener = new MyLocationListener();
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        findViewById(R.id.genzong).setOnClickListener(new Button.OnClickListener(){
			@Override
			public void onClick(View v) {
				lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
				 //第一个参数选择合适的provider,第二个参数是时间间隔是1秒中,
				//第三个参数是位置发生0米的变化就会触发,第四个参数是触发的监听器
		        lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 0, listener);
			}
        });
        
        findViewById(R.id.dingwei).setOnClickListener(new Button.OnClickListener(){
			@Override
			public void onClick(View v) {
				lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
		        Location location = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);
		        printLocation(location);
			}
        });
        
        findViewById(R.id.criteria).setOnClickListener(new Button.OnClickListener(){
			@Override
			public void onClick(View v) {
				System.out.println("R.id.criteria");
				lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
		        Criteria criteria = new Criteria();
		        //设置精确程度为高精确
		        criteria.setAccuracy(Criteria.ACCURACY_FINE);
		        //设置是否需要高度设置
		        criteria.setAltitudeRequired(false);
		        //是否需要方位设置
		        criteria.setBearingRequired(false);
		        //是否需要速度信息
		        criteria.setSpeedRequired(true);
		        //是否产生费用
		        criteria.setCostAllowed(true);
//		        //获取最符合条件的LocationProvider,true表示只返回可以使用的locationProvider
//		        String bestProvider = lm.getBestProvider(criteria, true);
		        //获取所有符合条件的locationProvider,false表示不可用的locationProvider也显示出来
		        List<String> matchProviders = lm.getProviders(criteria, false);
		        for(String temp : matchProviders){
		        	System.out.println(temp);
		        }
			}
        });
    }
    
    public static void printLocation(Location l){
    	System.out.println("jingdu :" + l.getAccuracy());
    	System.out.println("gaodu : " + l.getAltitude());
    	System.out.println("fangxiang : " + l.getBearing());
    	System.out.println("sudu : " + l.getSpeed());
    }
    
    public class MyLocationListener implements LocationListener{
    	//位置更新的时候调用下面的方法
		@Override
		public void onLocationChanged(Location location) {
			System.out.println("jingdu : " + location.getLongitude());
			System.out.println("weidu : " + location.getLatitude());
		}

		@Override
		public void onProviderDisabled(String provider) {
		}

		@Override
		public void onProviderEnabled(String provider) {
		}

		@Override
		public void onStatusChanged(String provider, int status, Bundle extras) {
		}
    }
}

 

Android 位置服务——用户定位User Location

哎,这几天有点偷懒,博客几天没有更新啦,自己攒了一大堆知识没有整理,今天要抓紧调整状态,恢复之前的状态哦, 哦哦,不扯了,下面说今天总结的内容是基于位置服务的用户定位。   这项功能在手机应用中在常...
  • To_be_Designer
  • To_be_Designer
  • 2015年09月22日 20:37
  • 3430

Swift 使用CoreLocation获取定位与位置信息

大多数情况下APP会在开启应用的时候获取当前的位置,所以我写在APPDelegate里 第一步 import CoreLocation var locationManager = CLLoc...
  • walkerwqp
  • walkerwqp
  • 2017年04月01日 17:30
  • 1371

【已解决】【奇葩5】iOS 定位到香港

xcode中模拟定位
  • hzxpyjq
  • hzxpyjq
  • 2015年02月02日 09:56
  • 1983

Android 位置服务——用户定位User Location

哎,这几天有点偷懒,博客几天没有更新啦,自己攒了一大堆知识没有整理,今天要抓紧调整状态,恢复之前的状态哦, 哦哦,不扯了,下面说今天总结的内容是基于位置服务的用户定位。   这项功能在手机应用中在常...
  • To_be_Designer
  • To_be_Designer
  • 2015年09月22日 20:37
  • 3430

Android位置服务--用户定位Location

安卓中,用自带的位置服务,可以查看自己目前的经纬度信息,不过在此之前我们需要声明相应的权限信息。 ...
  • qq_28946307
  • qq_28946307
  • 2016年04月17日 20:42
  • 229

iso_location_定位

  • 2014年11月13日 15:49
  • 62KB
  • 下载

Location定位

  • 2016年05月16日 10:34
  • 20.29MB
  • 下载

Android应用开发之(Location in Android-定位)

Android应用开发之(Location in Android-定位) 转自:http://iandroiddev.com/post/2011-12-31/14886014 如何...
  • goyoung
  • goyoung
  • 2013年03月14日 23:47
  • 3260

iOS8 Core Location (授权。。。室内定位。。。访问监控。。。)

前言 当肾Phone出现,定位服务一直都是作为一个前沿技术跟中心存在。CL API在肾平台SDK第一次发布的时候就列入了公开接口。在每次新发布的iOS版本中,大苹果总是循序渐进的增加一些新功...
  • muzhenhua
  • muzhenhua
  • 2015年07月21日 15:44
  • 1607

Android应用开发之(Location in Android-定位)

Android应用开发之(Location in Android-定位) 转自:http://iandroiddev.com/post/2011-12-31/14886014 如何...
  • c18111655332
  • c18111655332
  • 2015年05月04日 10:13
  • 167
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用户定位location
举报原因:
原因补充:

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