LocationManager的用法

           要使用LocationManager就必须先获取到它的实例,我们可以用Context的getSystemService()方法获取到。getSystemService()方法接收一个字符串参数,用于确定获取系统的那个服务,这里传入Context.LOCATION_SERVICE即可。因此,获取LocatManager的实例就可以写成:

           LocationManager locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);

接着我们需要选择一个位置提供器来确定设备当前的位置。Android中一般有三种位置提供器可供选择,

GPS_PROVIDER、NETWORK_PROVIDER和PASSVIE_PROVIDER.其中前两种使用的比较多,分别表示GPS定位和网络定位.

这两种定位各有特点,GPS定位精度比较高,但是非常耗电,而网络定位稍差,但耗电量较小。

        将选择好的位置提供器传入到getLastKnownLocation()方法中,就可以得到一个Location对象,如下所示:

       String provider = LocationManager.NETWORK_PROVIDER;

       Location location = locationManager.getLastKnownLocation(provider);

这个Location对象包含了经度、纬度、海拔等一系列的位置信息,然后从中取出我们所关心的那部分数据即可。 

另外,getLastKnownLocation虽然可以获取设备当前的位置信息,但是用户完全是有可能带着设备随时移动的,那么我们怎么 才可以在设备位置发生变化时获取到新的位置信息呢,不用担心,LocationManager还提供了一个requestLocationUpdate()方法,只要传入一个LocationListener的实例,并简单配置几个参数就可以实现上述功能了,写法如下:

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 5000, 10,

       new LocationListener() {

               @Override

               public void onStatusChanged(String provider, int status, Bundle extras) {
           
     }

           @Override         
          
            public void onProviderEnabled(String provider) {
            

            }

            @Override
          
                public void onProviderDisabled(String provider)  {               
             
                 }

           @Override
         
           public void onLocationChanged(Location location)   {

          }  

});

           这里requestLocationUpdates()方法接收四个参数,第一个参数是位置提供器的类型,第二个参数是监听位置变化的时间间隔,以毫秒为单位,第三个参数是监听位置变化的距离,以米为单位;第四个参数则是LocationListener监听器。这样的话,,LocationManagermei每隔5秒钟会检查一下位置的变化情况,当移动距离超过10米时,就会调用LocationListener的onLocationChanged()方法,并把新的位置信息作为参数传入。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值