当前位置:首页 > Android > 正文内容

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

jsc11年前 (2014-08-27)Android3779


一、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信息的通用步骤

                  获取LocationManager对象;

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

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


扫描二维码推送至手机访问。

版权声明:本文由微小站发布,如需转载请注明出处。

本文链接:https://jsc0.com/post/13.html

标签: GPS
分享给朋友:

“Android基本功:支持GPS的核心API” 的相关文章

Android中Parcelable接口用法

1. Parcelable接口Interface for classes whose instances can be written to and restored from a Parcel。 Classes implementing the Parcelable interface m...

实现应用程序只有在第一次启动时显示引导界面

第一次安装启动:启动页--->导航页-->主页面之后启动:启动页-->主页面实现的原理就是:在启动页面用做一个文件保存的状态,保存程序是不是第一次启动的状态。因为只是要保存一个状态,我们将这个程序是第一次打开就将他设为true,当他进入 主页面之后将他的状态未为false,因为都...

Android采用SharedPreferences保存用户登录信息

Android平台给我们提供了一个SharedPreferences类,它是一个轻量级的存储类,特别适合用于保存软件配置参数。使用 SharedPreferences保存数据,其背后是用xml文件存放数据,文件存放在/data/data/<package name>/shared...

Fragment保持状态切换

Fragment保持状态切换

在使用Activity管理多个Fragment时,每次切换Fragment使用的是replace,结果导致出现xxx is not currently in the FragmentManager异常挂掉网上说使用replace切换会使被切换的Fragment给替换掉,从而被被切换的Fra...

Android SharedPreferences PreperenceScreen 偏好数据存取

SharedPreferences是一个接口,程序是无法创建SharedPreferences实例的,1、Context.getSharedPreferences(String name,int mode)来得到一个指定name的SharedPreferences实例2、PreferenceMana...

制作一款Android APK管理器主要代码

Android APK管理器代码,主要就是两个列表,一个显示SD卡上面的APK文件的list,一个显示已经安装的app的list。1:获取SD卡上的APK安装文件后,要用代码读出APK里面的信息,如icon等,的主要代码如下:private void getUninatllApk...