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

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

jsc11年前 (2014-08-27)Android3553


一、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” 的相关文章

使用自定义RadioButton和ViewPager实现TabHost效果和带滑动的页卡效果。

使用自定义RadioButton和ViewPager实现TabHost效果和带滑动的页卡效果。

在工作中又很多需求都不是android系统自带的控件可以达到效果的,内置的TabHost就是,只能达到简单的效果 ,所以这个时候就要自定义控件来达到效果:这个效果就是: 使用自定义RadioButton和ViewPager实现TabHost带滑动的页卡效果。    &...

android悬浮窗口的实现

android悬浮窗口的实现

       当我们在手机上使用360安 全卫士时,手机屏幕上时刻都会出现一个小浮动窗口,点击该浮动窗口可跳转到安全卫士的操作界面,而且该浮动窗口不受其他activity的覆盖影响仍然可 见(多米音乐也有相关的和主界面交互的...

Android动态布局,并动态为TextView控件设置drawableLeft、drawableRight等属性添加图标

Android动态布局,并动态为TextView控件设置drawableLeft、drawableRight等属性添加图标

注:(图中每一个条目和图标都是由代码动态生成) 代码动态布局,并需要为每一个条目设置图标,此时用到了 android:drawableLeft="@drawable/icon" ...

修改keystore密码别名等

修改keystore密码别名等

之前在测试Eclipse ADT的Custom debug keystore自定义调试证书的时候,发过一篇关于调试证书规格的博文:Eclipse ADT的Custom debug keystore所需证书规格,提到过自定义调试证书的密码和alias命名以及alias密码都是...

Fragment保持状态切换

Fragment保持状态切换

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

采用SharedPreferences保存用户偏好设置参数和读取设置参数

采用SharedPreferences保存用户偏好设置参数和读取设置参数

Android SDK支持那些文件存储技术? 1. 使用SharedPreferences保存key-value类型的数据 2. 流文件存储(使用openFileOutput和openFileInput方法,或FileInputStream和FileO...