手机编程,调用GPS定位模块

手机编程,调用GPS定位模块

GPS调用是Android系统中非常重要的一个功能,可以为手机app提供与位置相关的所有功能。

Android编程时,对于GPS模块有一个专门的管理类,称为:LocationManager,用来管理与GPS定位服务相关的所有接口。

LocationMangager

简称位置管理器。在使用gps相关硬件设备之前,需要先定个LocationManager。LocationManager类的对象获取并不是直接创建的,而是由系统提供的,只需要创建一个LocationManager对象的引用,然后把系统提供的数据赋值给它即可:

LocationManager locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);

此类封装了一些常用的gps功能,比如获取gps状态,最近一些可以地点信息等等:

GpsStatus.Listener ,GPS状态监听,包括GPS启动、停止、第一次定位、卫星变化等事件。

GpsStatus,GPS状态信息,上面在卫星状态变化时,我们就用到了GpsStatus。

GpsSatellite,定位卫星,包含卫星的方位、高度、伪随机噪声码、信噪比等信息。

GpsStatus getGpsStatus(GpsStatus):获取GPS当前状态;

Location getLastKnownLocation(String):获取最近一次的可用地点信息

可以将地点信息传递给一个Location对象:

Locationlocation = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);

Location

位置信息,通过Location可以获取时间、经纬度、海拔等位置信息。上面采用locationListener里面的onLocationChanged()来获取location,

比如获取时间location.getTime(),获取经度getLongtitude(),获取纬度:location.getLatitude(),海拔location.getAltitude()等等

下面讲述如何主动获取location。首先也是先创建一个Location对象的引用并赋值:

Location location=locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);

并显示出来:

system.out.println(“时间:”+location.getTime());

system.out.println(“经度:”+location.getLongitude());

另外,如果通过new Location来赋值,那么此时所有函数的值都会是0。无法获取到正确的数据。

Location location=new Location(LocationManager.GPS_PROVIDER)

可以调用以下函数,对每次更新的位置信息进行我们想要的操作:

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,1000, 10, new LocationListener())

第一个参数是LocationProvider对象,第二个参数是刷新的时间差,这里设定为1秒,第三个参数是位置差,这里设定为10米,第四个参数为一个位置监听器对象。

简单代码学+注释

!-- 声明手机粗略定位授权 –
uses-permission android:name=“android.permission.ACCESS_COARSE_LOCATION”/>
!-- 声明手机精细定位授权 -->
uses-permission android:name=“android.permission.ACCESS_FINE_LOCATION”/>
!-- 声明手机模拟定位授权 -->
uses-permission android:name=“android.permission.ACCESS_MOCK_LOCATION”/>
!-- 声明联网授权 -->
uses-permission android:name=“android.permission.INTERNET” />

发布了9 篇原创文章 · 获赞 0 · 访问量 924

猜你喜欢

转载自blog.csdn.net/weixin_46146588/article/details/105451900
今日推荐