Android GPS定位测试

Elita ·
更新时间:2024-11-11
· 999 次阅读

  因为工作需要,把以前编写的一个GPS测试程序拿出来重新修改了一下。这个程序说起来有些历史了,是我11年编写的,那时候学了Android开发没多久,算是一个实验性的作品。现在工作需要,重新拿出来修整。同时发现我对android的GPS服务了解并不深,所以特意阅读了有关GPS服务的一些资料,把相关知识点记录下来。   本人做了GPS相关的嵌入式软件已经几年了,所以说起要做个测试GPS定位模块的程序,第一反应是串口读取GPS模块的数据,然后解析GPS的NMEA格式数据。NMEA是一种标准化数据格式,不仅仅GPS上应用了,其他一些工业通信也是使用这种标准化数据格式。解析相关数据然后显示出来,完成了一个基本的GPS定位测试功能。   查了一下才发现Android上做GPS相关定位服务,不需要读取NMEA数据分析,Android已经封装好了相关服务,你要做的是调用API。这个不知道应该觉得爽还是觉得纠结。(Android也提供了读取NMEA接口,下面会说到)   1、Android 定位服务   下面我们先来看看Android有关定位服务提供的支持:

  Android定位服务都是位于location下,上面都有相关说明,这里不详细解析。有一点有需要说说的   是:GpsStatus.NmeaListener 官方的说法是可以读取NMEA数据,但是我这里测试发现,并没有读取到NMEA的数据。查阅过一些资料,说是google在底层并没有实现数据反馈的功能。有时间,需要查看一下源码。   2、LocationManager定位 //Edited by mythou //http://www.cnblogs.com/mythou/ //获取定位服务 LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE); //判断是否已经打开GPS模块 if (locationManager.isProviderEnabled(android.location.LocationManager.GPS_PROVIDER)) { //GPS模块打开,可以定位操作 } // 通过GPS定位 String LocateType= locationManager.GPS_PROVIDER; Location location = locationManager.getLastKnownLocation(LocateType); // 设置监听器,设置自动更新间隔这里设置1000ms,移动距离:0米。 locationManager.requestLocationUpdates(provider, 1000, 0, locationListener); // 设置状态监听回调函数。statusListener是监听的回调函数。 locationManager.addGpsStatusListener(statusListener); //另外给出 通过network定位设置 String LocateType= locationManager.NETWORK_PROVIDER; Location location = locationManager.getLastKnownLocation(LocateType);



gps定位 gps 测试 Android

需要 登录 后方可回复, 如果你还没有账号请 注册新账号