简介
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():判断该定位信息是否含有精度信息
简单使用
简单使用临近警告(地理围栏)
固定一个点,当手机与该点的距离少于指定范围时,可以触发对应的处理。
临近警告
网友评论