Android基本功:支持GPS的核心API

http://www.android100.org/html/201406/04/17422.html

 

一、LocationManager类

  • 作用和TelephonyManager,AudioManager等服务类的作用类似,所有GPS定位相关的服务、对象都由该对象产生;

  • 通过调用Context.getSystemService()方法获取实例对象;

  • 提供如下方法:

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

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

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

    • String getBestProvider(Criteria criteria,boolean enabledOnly):根据制定条件返回最优的LocationProvider对象;

    • GpsStatus getGpsStatus(GpsStatus status):获取GPS状态;

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

    • LocationProvider getProvider(String name):根据名称来获取LocationProvider;

    • List getProviders(Criteria criteria,boolean enabledOnly):根据制定条件获取满足条件的全部LocationProvier的名称;

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

    • boolean isProviderEnabled(String provider):判断制定名称的LocationProvider是否可用;

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

    • void removeProximityAlert(PendingIntent intent):删除一个趋近警告;

    • void requestLocationUpdates(String provider,long minTime,float minDistance,PendingIntent intent):通过指定的LocationProvider周期性获取定位信息,并通过Intent启动相应的组件;

    • void requestLocationUpdates(String provider,long minTime,float minDistance,LcoationListener listener):通过指定的LocationProvider周期性的获取定位信息,并触发listener对应的触发器;

 

二、LocationProvider类

  • 定位组件的抽象标识,通过它可以获取定位的相关信息;

  • 提供如下常用方法:

    • String getName():返回该LocationProvider的名称;

    • int getAccuracy():返回该LocationProvider的精度;

    • int getPowerRequirement():返回该LocationProvider的电源需求;

    • boolean hasMonetaryCost():返回LocationProvider是收费还是免费;

    • boolean meetsCriteria(Criteria criteria):判断该LocationProvider是否满足Criteria条件;

    • boolean requiresCell():判断该LocationProvider是否需要访问网路基站;

    • boolean requiresNetword():判断该LocationProvider是否需要网路数据;

    • boolean requiresStatellite():判断该LocationProvider是否需要访问卫星的定位系统;

    • boolean supportsAltitude():判断该LocationProvider是否支持高度信息;

    • boolean supportsBearing():判断该LocationProvider是否支持方向信息;

    • boolean supportsSpeed():判断该LocationProvider是否支持速度信息;

 

三、Location类

  • 代表位置信息的抽象类;

  • 提供如下方法来获取定位信息:

    • float getAccuracy():获取定位信息的精度;

    • double getAltitude():获取定位信息的高度;

    • float getBearing():获取定位信息的方向;

    • double getLatitude():获取定位信息的经度;

    • double getLongitude():获取定位信息的纬度;

    • String getProvider():获取提供该定位信息的LocationProvider;

    • float getSpeed():获取定位信息的速度;

    • boolean hasAccuracy():判断该定位信息是否有经度信息;

    • boolean hasAltitude():判断定位信息是否有高度信息;

    • boolean hasBearing():判断定位信息是否有方向信息;

    • boolean hasSpeed():判断定位信息是否有速度信息;

 

四、获取GPS信息的通用步骤

  1. 获取LocationManager对象;

  2. 使用LocationManager,通过制定LocationProvider来获取定位信息,定位信息由Location表示;

  3. 从Location对象中获取定位信息;

 

 

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值