14.12 GPS

作者: jadefly | 来源:发表于2018-09-14 13:50 被阅读0次

简介

GPS全球定位技术

通过与卫星交互来获取设备当前的经纬度,准确度较高,缺点是需要收到4颗卫星或以上 信号才能保证GPS的准确定位(室内几乎无法使用)。

Android中定位的方式 一般有这四种:GPS定位,WIFI定准,基站定位,AGPS定位(基站+GPS);


LocationManager

常用方法:

addGpsStatusListener(GpsStatus.Listener listener):添加一个GPS状态监听器

addProximityAlert(double latitude, double longitude, float radius, long expiration, PendingIntent intent): 添加一个临界警告

getAllProviders():获取所有的LocationProvider列表

getBestProvider(Criteria criteria, boolean enabledOnly):根据指定条件返回最优LocationProvider

getGpsStatus(GpsStatus status):获取GPS状态

getLastKnownLocation(String provider):根据LocationProvider获得最近一次已知的Location

getProvider(String name):根据名称来获得LocationProvider

getProviders(boolean enabledOnly):获取所有可用的LocationProvider

getProviders(Criteria criteria, boolean enabledOnly):根据指定条件获取满足条件的所有LocationProvider

isProviderEnabled(String provider):判断指定名称的LocationProvider是否可用

removeGpsStatusListener(GpsStatus.Listener listener):删除GPS状态监听器

removeProximityAlert(PendingIntent intent):删除一个临近警告

requestLocationUpdates(long minTime, float minDistance, Criteria criteria, PendingIntent intent): 通过制定的LocationProvider周期性地获取定位信息,并通过Intent启动相应的组件

requestLocationUpdates(String provider, long minTime, float minDistance, LocationListener listener): 通过制定的LocationProvider周期性地获取定位信息,并触发listener所对应的触发器


LocationProvider(定位提供者)

GPS定位组件的抽象表示

常用方法:

getAccuracy():返回LocationProvider精度

getName():返回LocationProvider名称

getPowerRequirement():获取LocationProvider的电源需求

hasMonetaryCost():返回该LocationProvider是收费还是免费的

meetsCriteria(Criteria criteria):判断LocationProvider是否满足Criteria条件

requiresCell():判断LocationProvider是否需要访问网络基站

requiresNetwork():判断LocationProvider是否需要访问网络数据

requiresSatellite():判断LocationProvider是否需要访问基于卫星的定位系统

supportsAltitude():判断LocationProvider是否支持高度信息

supportsBearing():判断LocationProvider是否支持方向信息

supportsSpeed():判断是LocationProvider否支持速度信息

获取LocationProvider时,可以设置Criteria过滤条件:

setAccuracy(int accuracy):设置对的精度要求

setAltitudeRequired(boolean altitudeRequired):设置是否要求LocationProvider能提供高度的信息

setBearingRequired(boolean bearingRequired):设置是否要LocationProvider求能提供方向信息

setCostAllowed(boolean costAllowed):设置是否要求LocationProvider能提供方向信息

setPowerRequirement(int level):设置要求LocationProvider的耗电量

setSpeedRequired(boolean speedRequired):设置是否要求LocationProvider能提供速度信息


Location(位置信息)

位置信息的抽象类

常用方法:

float getAccuracy():获得定位信息的精度

double getAltitude():获得定位信息的高度

float getBearing():获得定位信息的方向

double getLatitude():获得定位信息的纬度

double getLongitude():获得定位信息的精度

String getProvider():获得提供该定位信息的LocationProvider

float getSpeed():获得定位信息的速度

boolean hasAccuracy():判断该定位信息是否含有精度信息


简单使用

简单使用

临近警告(地理围栏)

固定一个点,当手机与该点的距离少于指定范围时,可以触发对应的处理。

临近警告

相关文章

网友评论

      本文标题:14.12 GPS

      本文链接:https://www.haomeiwen.com/subject/shgngftx.html