作家
登录

关于Android的定位服务

作者: 来源: 2017-09-01 15:06:45 阅读 我要评论

今天因为工作须要,把以前编写的一个GPS测试法度榜样拿出来从新修改了一下。这个法度榜样说起来竽暌剐些汗青了,是我11年编写的,那时刻学了Android开辟没多久,算是一个实验性的作品。如今工作须要,从新拿出来修整。同时发明我对android的GPS办事懂得并不深,所以今天特意浏览了有关GPS办事的一些材料,把相干常识点记录下来。

本人做了GPS相干的嵌入式软件已经几年了,所以说起要做个测试GPS定位模块的法度榜样,第一反竽暌功就是串口攫取GPS模块的数据,然后解析GPS的NMEA格局数据。NMEA是一种标准化数据格局,不仅仅GPS上应用了,其他一些工业通信也是应用这种标准化数据格局。解析相干数据然后显示出来,就完成了一个根本的GPS定位测试功能。

查了一下才发明Android上做GPS相干定位办事,不须要攫取NMEA数据分析,Android已经封装好了相干办事,你要做的就是调用API。这个不知道应当认为爽照样认为纠结。(Android也供给了攫取NMEA接口,下面会说到)

下面我们先来看看Android有关定位办事供给的支撑:

Android定位办事都是位于location下,膳绫擎都有相干解释,这里就不具体解析。有一点有须要说说的是:GpsStatus.NmeaListener 官方的说法是可以攫取NMEA数据,然则我这里测试发明,并没有攫取到NMEA的数据。查阅过一些材料,说是google在底层并没有实现数据反馈的功能。有时光,须要查看一下源码。

2、LocationManager定位

1、Android 定位办事

  1. //获取定位办事 
  2. LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE); 
  3. //断定是否已经打开GPS模块 
  4. if (locationManager.isProviderEnabled(android.location.LocationManager.GPS_PROVIDER)) { 
  5. //GPS模块打开,可以定位操作 
  6. // 经由过程GPS定位 
  7. String LocateType = locationManager.GPS_PROVIDER; 
  8. Location location = locationManager.getLastKnownLocation(LocateType); 
  9. // 设置监听器,设置主动更新舅鏊殁里设置1000ms,移动距离:0米。 
  10. locationManager.requestLocationUpdates(provider, 1000, 0, locationListener); 
  11. // 设置状况监听回调函数。statusListener是监听的回调函数。 
  12. locationManager.addGpsStatusListener(statusListener); 
  13. //别的给出 经由过程network定位设置 
  14. String LocateType = locationManager.NETWORK_PROVIDER; 
  15. Location location = locationManager.getLastKnownLocation(LocateType);  

3、GpsStatus监听器

膳绫擎给出了定位办事的初始化设置步调,但我们都知道GPS卫星是按期广播数据的,也就是说会按期收到卫星的GPS数据。我们并不克不及跟卫星主动申请数据,只能被动吸法术据。(中国的北斗2倒是可以发送卫星报文给卫星)是以我们须要注册一个监听器来处理卫星返回的数据。

  1. private final GpsStatus.Listener statusListener = new GpsStatus.Listener() { 
  2.         public void onGpsStatusChanged(int event) { 
  3. // GPS状况变更时的回调,获取当缁ご态 
  4.             GpsStatus status = locationManager.getGpsStatus(null); 
  5. //本身编写的办法,获取卫星状况相干数据 
  6.             GetGPSStatus(event, status); 
  7.         } 
  8.     };  

4、获取搜刮到的卫星

  1. private void GetGPSStatus(int event, GpsStatus status) { 
  2.         Log.d(TAG, "enter the updateGpsStatus()"); 
  3.         if (status == null) { 
  4.         } 
     1/4    1 2 3 4 下一页 尾页

      推荐阅读

      苏宁体育Biu,无人店又来新伙伴

    【51CTO.com原创稿件】作为“聪明科技”的代名词,无人店同夏末高温一样火热不退。无人店,顾名思义就是借助RFID、智能付出、图像辨认等高科技手段实现店内无人经营的状况,如许>>>详细阅读


    本文标题:关于Android的定位服务

    地址:http://www.17bianji.com/lsqh/37106.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)