gps

转载 2012年03月21日 22:00:44

特别声明:以下所有操作都别忘记了加上权限:

  1. <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />  
  2.   
  3.  <uses-permission android:name="android.permission.INTERNET" />  
  4.   
  5.  <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />  
  6.   
  7. sp;  

LocationManager

通过LocationManager可以实现设备的定位、跟踪和趋近提示。它不需要你直接来实例化,我们可以通过Context.getSystemService(Context.LOCATION_SERVICE). 来获得LocationManager实例。

常用属性和方法

属性和方法

描述

GPS_PROVIDER

静态字符串常量,表明LocationProvider是GPS

NETWORK_PROVIDER

静态字符串常量,表明LocationProvider是网络

addGpsStatusListener(GpsStatus.Listener listener)

添加一个GPS状态监听器

addProximityAlert(double latitude, double longitude, float radius, long expiration, PendingIntent intent)

添加一个趋近警告

getAllProviders()

获得所有的LocationProvider列表

getBestProvider(Criteria criteria, boolean enabledOnly)

根据Criteria返回最适合的LocationProvider

getLastKnownLocation(String provider)

根据Provider获得位置信息

getProvider(String name)

获得指定名称的LocationProvider

getProvider(boolean enableOnly)

获得可利用的LocationProvider列表

removeProximityAlert(PendingIntent intent)

删除趋近警告

requestLocationUpdates(String provider, long minTime, float minDistance, PendingIntent intent)

通过给定的Provider名称,周期性地通知当前Activity

requestLocationUpdates(String provider, long minTime, float minDistance, LocationListener listener)

通过给定的Provider名称,并将其绑定指定的LocationListener监听器

 

 

 

LocationProvider

LocationProvider用来描述位置提供者,设置位置提供者的一些属性。可以通过Criteria类来为LocationProvider设置条件,获得合适的LocationProvider。

属性或者方法名称

描述

AVAILABLE

静态整型常量,标示是否可利用

OUT_OF_SERVICE

静态整型常量,不在服务区

TEMPORAILY_UNAVAILABLE

静态整型常量,临时不可利用

getAccuarcy()

获得精度

getName()

获得名称

getPowerRequirement()

获得电源需求

hasMonetaryCost()

花钱的还是免费的

requiresCell()

是否需要访问基站网络

requiresNetWork()

是否需要Intent网络数据

requiresSatelite()

是否需要访问卫星

supportsAltitude()

是否能够提供高度信息

supportsBearing()

是否能够提供方向信息

supportsSpeed()

是否能够提供速度信息

实例:获取设备上的所有的LocationProviders

  1. locationManager=(LocationManager)LocationManagerDemoActivity.this.getSystemService(Context.LOCATION_SERVICE);  
  2.   
  3.                 
  4.   
  5.               //获取所有的LocationProvider  
  6.   
  7.               List<String> allproviders=locationManager.getAllProviders();  
  8.   
  9.               for (String string : allproviders) {  
  10.   
  11.                   System.out.println(string);  
  12.   
  13.               }  

 

Location类

它用于描述当前设备的地理位置信息,包括了经纬度、方向、高度和速度等。可以通过LocationManager.getLastKnownLocation(String provider)方法可以获得Location实例

其常见方法和属性:

方法

描述

public float getAccuracy ()

获得精确度

public double getAltitude ()

获得高度

public float getBearing ()

获得方向

public double getLatitude ()

获取经度

public double getLongitude ()

获得纬度

public float getSpeed ()

获得速度

实例:得到你自己的位置

  1. // 获取自己的位置  
  2.   
  3.    btnGetPosition.setOnClickListener(new View.OnClickListener() {  
  4.   
  5.        @Override  
  6.   
  7.        public void onClick(View v) {  
  8.   
  9.           System.out.println("获取当前位置");  
  10.   
  11.           locationManager = (LocationManager) LocationManagerDemoActivity.this  
  12.   
  13.                  .getSystemService(Context.LOCATION_SERVICE);  
  14.   
  15.   
  16.   
  17.      
  18.   
  19.   
  20.   
  21.           Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);  
  22.   
  23.           System.out.println("你当前的位置:");  
  24.   
  25.           StringBuilder sb=new StringBuilder("你当前的位置(经纬度):");  
  26.   
  27.           sb.append("(");  
  28.   
  29.           sb.append(location.getLatitude());  
  30.   
  31.           sb.append(",");  
  32.   
  33.           sb.append(location.getLongitude());  
  34.   
  35.           sb.append(")");  
  36.   
  37.           System.out.println(location.getLatitude());  
  38.   
  39.           System.out.println(location.getLongitude());  
  40.   
  41.           txtPostion.setText(sb);  
  42.   
  43.        }  
  44.   
  45.    });  

 

实例:追踪位置:

requestLocationUpdates(String provider,long minTime,float minDistance,LocationListener listener)

关于参数minTime,minDistance的说明是指当用户位置改变多少纬度时候多长时间更新下这个用户的位置

    

  1. locationManager.requestLocationUpdates(  
  2.   
  3.                   LocationManager.GPS_PROVIDER, 500500new listener());  

实例:获取最好的LocationProivider

  1. LocationManager.getBasetProvider(Criteria criteria,boolean is)  

Criteria类

它封装了用于获得LocationProvider的条件,可以根据指定的Criteria条件来过滤获得LocationProvider

及常用属性和方法如下:

属性或访求名称

描述

ACCERACY_COARSE

粗糙精确度

ACCURACY_FINE

较高精确度

POWER_HING

用电高

POWER_LOW

用电低

isAlititudeRequried()

返回Provider是否需要高度信息

isBearingRequired()

返回Provider是否需要方位信息

isSpeedRequried()

返回Provider是否需要速度信息

isCostAllowed()

是否允许产生费用

setAccuracy(int accuracy)

设置Provider的精确度

setAltitudeRequired (boolean altitudeRequired)

设置Provider是否需要高度信息

setBearingRequired (boolean bearingRequired)

设置Provider是否需要方位信息

setCostAllowed (boolean costAllowed)

设置Provider是否产生费用

setSpeedAccuracy (int accuracy)

设置Provider是否需要速度信息

getAccuracy()

获得精度

  1. // 获取最佳的Provider  
  2.   
  3.    btnBestProvider.setOnClickListener(new View.OnClickListener() {  
  4.   
  5.        @Override  
  6.   
  7.        public void onClick(View v) {  
  8.   
  9.           String bestProviders = "";  
  10.   
  11.           locationManager = (LocationManager) LocationManagerDemoActivity.this  
  12.   
  13.                  .getSystemService(Context.LOCATION_SERVICE);  
  14.   
  15.           // 新建一个Criteria  
  16.   
  17.           Criteria criteria = new Criteria();  
  18.   
  19.           // 设置精确度  
  20.   
  21.           criteria.setAccuracy(Criteria.ACCURACY_COARSE);  
  22.   
  23.           criteria.setPowerRequirement(Criteria.POWER_LOW);  
  24.   
  25.           criteria.setAltitudeRequired(false);  
  26.   
  27.           criteria.setBearingRequired(false);  
  28.   
  29.           criteria.setSpeedRequired(false);  
  30.   
  31.           criteria.setCostAllowed(false);  
  32.   
  33.           // 获得符合条件的provider  
  34.   
  35.           bestProviders = locationManager  
  36.   
  37.                  .getBestProvider(criteria, false);  
  38.   
  39.           txtCrerita.setText("最佳的provider:"+bestProviders);  
  40.   
  41.             
  42.   
  43.        }  
  44.   
  45.    });  

总结(再看GPS):

从以上知识我们可以知道,要想使用Android平台下的GPS服务我们就得用LocationManager这个系统服务,我们可以通过Context.getSystemService(Context.LOCATION_SERVIER)来得到这个LocationManager对象实例,有了这么一个服务后,我们可以通过LocationProvider来描述位置提供者,为了某种需要我们又用到了一个Criteria类来设置满足我们自己的最佳要求,那么这一切都搞定的时候,获取我们自己所在的位置我们就用到了Location类,这个类用来获取我们自己的位置,例如:经纬度。

如何选择GPS同步时钟(或授…

原文地址:如何选择GPS同步时钟(或授时仪)?作者:寰亚翔宇 市场上GPS授时仪千差万别,价格性能更是参差不一,如何根据自己的需求来选择,主要根据如下几个要素; 首先是授时精度,虽然各型GPS模块都...
  • nonths
  • nonths
  • 2014年04月02日 09:44
  • 947

GPS的一些浅显知识兼介绍一下GPS测试仪

GPS的一些浅显知识兼介绍一下GPS测试仪 很多人其实对GPS一知半解,我在这里尝试使用一些容易理解的语言说一下有关GPS的知识,捎带着介绍一下GPS测试仪这个软件的几个界面。有说的不妥的地方,...
  • shanghaibao123
  • shanghaibao123
  • 2015年09月17日 12:26
  • 1525

android关于GPS hal层的分析

转载自:http://blog.chinaunix.net/uid-26215986-id-3743534.html 主控: Samsung   Cortex  ARM A8  smdkc110...
  • YanLai20
  • YanLai20
  • 2015年07月03日 20:21
  • 1115

GPS坐标系与实际地图坐标系

zhuanzhi 在开始这个题目之前,先给大家再次扫扫盲,扫的不是坐标系统的盲,而是我们国家所使用的坐标系统。大家都知道,美国GPS使用的是WGS84的坐标系统,以经纬度的形式来表示...
  • CUIT_IGIS
  • CUIT_IGIS
  • 2014年09月10日 14:03
  • 1724

gps两种解码的方式

做为现在的物联网行业,手持设备中,缺少不了的就是GPS定位功能。GPS模块和STM32的串口进行通信,将GPS的数据发送给M3的串口,由M3进行GPS协议的解码。解析出来后保存在响应的结构体中。在进行...
  • liukais
  • liukais
  • 2016年12月29日 13:33
  • 1499

零基础学习JAVA—GPS数据处理

题目内容: NMEA-0183协议是为了在不同的GPS(全球定位系统)导航设备中建立统一的BTCM(海事无线电技术委员会)标准,由美国国家海洋电子协会(NMEA-The National Marin...
  • qq_34475777
  • qq_34475777
  • 2017年03月14日 17:02
  • 1737

GPS天线类型和特点

GPS天线类型和特点   (2010-01-01 10:11:02) 转载▼   分类: GPS设计 GPS天线的作用:     ...
  • Edward_hua123
  • Edward_hua123
  • 2014年06月20日 02:47
  • 1533

GPS协议数据格式

$GPGGA 例:$GPGGA,092204.999,4250.5589,S,14718.5084,E,1,04,24.4,19.7,M,,,,0000*1F 字段0:$GPGGA,语句ID,表明...
  • richu123
  • richu123
  • 2016年06月28日 16:24
  • 876

Android GPS架构分析

看Android的GPS模块有两个月了吧,终于可以写点东西出来。首先来看看GPS模块的代码结构: Framework: 1.frameworks/base/location/java/...
  • G_linuxer_
  • G_linuxer_
  • 2016年03月25日 14:47
  • 618

GPS芯片和天线

一、GPS芯片 (一)和芯星通方案对比 和芯星通 型号 功耗 尺寸 定位精度 灵敏度 UC221 60mW 6*6*1.2 2.5m CEP -160/-147 ...
  • ddway12
  • ddway12
  • 2016年12月20日 15:24
  • 1665
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:gps
举报原因:
原因补充:

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