`
java-admin
  • 浏览: 1384572 次
  • 性别: Icon_minigender_1
  • 来自: 陕西.西安
社区版块
存档分类
最新评论

Android LocationManager 使用

阅读更多

前一阵子,老大安排我写一个GPS的程序。大致就是用Android 提供的Location 服务,来获得当前的位置信息和卫星信息。这里就用到了LocationManager类,要使用它,先得获得系统所提供的location_service

private LocationManager locationManager;

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

要实时的得到位置信息,得注册一个location的listener。

private LocationListener locationListener;

locationManager.requestLocationUpdates(“gps”, 1000, 0, locationListener); 每秒更新位置信息,不考虑距离变化。

locationManager.removeUpdates(locationListener); 移除listener

在使用这个locationListener之前,还得先new一下,在位置信息更新时要做的操作都可以在这里实现

locationListener = new LocationListener()

{
       // implement necessary methods
       public void onLocationChanged(Location location)
       {
            // TODO Auto-generated method stub

            位置信息更新
        }

       public void onProviderDisabled(String provider)
       {
        // called when the provider be disabled by user


       }

       public void onProviderEnabled(String provider)
       {
        // called when the provider be enabled
        }

       public void onStatusChanged(String provider, int status, Bundle extras)
       {
        // TODO Auto-generated method stub

         provider状态改变
        }
      };

要得到位置信息,也可以单独调用getLastKnownLocation

Location m_location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);

位置信息中包含着 经纬度,高度,速度,UTC时间,定位精度等有用的信息。

得到了位置信息,下面来看卫星信息。Android下提供了GpsStatus这个类,通过调用此类的一个method  getSatellites() ,可以得到接收到的卫星的信息列表Iterable<GpsSatellite> 。当然这些操作也是在一个listener当中来做的:GpsStatus.Listener。GpsStatus的listener也是注册于locationManager:
private GpsStatus.Listener statusListener;

locationManager.addGpsStatusListener(statusListener);

locationManager.removeGpsStatusListener(statusListener);

初始化并实现更新时相应的操作:

private GpsStatus gpsStatus;

statusListener = new GpsStatus.Listener() 

{
    public void onGpsStatusChanged(int event)
    {
     // TODO Auto-generated method stub
     gpsStatus= locationManager.getGpsStatus(null);
    
     switch(event)
     {
     case GPS_EVENT_FIRST_FIX:
              //第一次定位时间UTC

              gpsStatus.getTimeToFirstFix();     

      break;
     
     case GPS_EVENT_SATELLITE_STATUS:

             //得到所有收到的卫星的信息,包括 卫星的高度角、方位角、信噪比、和伪随机号(及卫星编号)
      Iterable<GpsSatellite> allSatellites;
      allSatellites = gpsStatus.getSatellites();
    
      break;
     
     case GPS_EVENT_STARTED:
             //Event sent when the GPS system has started.

     break;
     
     case GPS_EVENT_STOPPED:
            //Event sent when the GPS system has stopped.
      break;
     
     default :
      break;
     }
    }


};

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/saint_bxg/archive/2009/07/07/4329008.aspx

分享到:
评论
3 楼 duanlonglong 2011-07-26  
如何得到连接的卫星数呢???????????????
2 楼 倒打一耙 2010-09-15  
locationManager.requestLocationUpdates(“gps”, 1000, 0, locationListener); 每秒更新位置信息,不考虑距离变化。看了你的这个解释,我感觉好像是在那个距离之内此方法有效,而当距离设置为“0”时则表示不考虑距离因素,不知道我的理解正确否?
1 楼 倒打一耙 2010-09-15  
你好,我想问一下,那个LocationManager中的requestLocationUpdates()方法中的四个参数,第一个和最后一个分别是定位方法和回调函数,但是第二个和第三个含义有些模糊,第二个是时间间隔是每隔多久做一次定位,调用一下回调函数么?而第三个参数是距离条件,是没变化多少米调用一下回调函数还是说在这么远距离之内,那个时间间隔才有效?

相关推荐

    Android LocationManager 获取经纬度和卫星信息

    以上就是使用Android的LocationManager API获取经纬度和卫星信息的基本步骤。在LocationDemo项目中,你可以找到完整的示例代码,帮助你更熟练地运用这些功能。通过深入理解和实践,你可以创建出更加智能和高效的位置...

    Android LocationManager获取经度与纬度等地理信息

    在Android开发中,LocationManager是系统提供的一种服务,用于获取设备的地理位置信息,如经度、纬度等。本文将详细介绍如何使用LocationManager来获取这些关键数据。 首先,要使用LocationManager,你需要在...

    Android开发使用LocationManager实现定位服务

    gps定位,实测可用. ...LocationManager本身提供了选择最好的provider的方法: // 获取最好的定位方式 String provider = locationManager.getBestProvider(criteria, true); // true 代表从打开的设备中查找

    Android:LocationManager定位demo

    这是一个利用LocationManager定位的实例demo,可获取经纬度,国家名称,城市名称,街道等信息。详细介绍请移步:http://blog.csdn.net/xiong_it/article/details/46968477

    android 使用LocationManager 用户定位

    这是一个用户定位的示例 Main 类用于演示获取Location Provider Main2 类用于演示获取最佳的Location Provider,两个类要修改Manifest.xml 文件才能分别运行

    RxLocationManager, RxJava在没有 Google Play Services的情况下环绕标准的Android LocationManager.zip

    RxLocationManager, RxJava在没有 Google Play Services的情况下环绕标准的Android LocationManager RxLocationManager 使用 standart LocationManager 。RxJava ( 1和 2 ) 和 Kotlin获取位置的Android库。 它不使用...

    Android LocationManager Demo

    Android LocationManager获取经纬度信息,在不使用第三方地图SDK的情况下,也可以借助Android 本身的定位API来实现相关地理位置功能,相关博文见这里https://blog.csdn.net/diyangxia/article/details/90674393

    Android Studio 实训操作题(五)LocationManager基本用法.docx

    Android Studio 实训操作题(五)实验7LocationManager基本用法.docx

    Android 获取当前位置,地区名称完整实

    Android提供了`LocationManager`服务来获取位置信息。通过`getSystemService(Context.LOCATION_SERVICE)`获取`LocationManager`实例,然后注册监听器,如`LocationListener`,来接收位置更新。 3. **GPS与网络定位...

    android gps 获取经纬度

    需要注意的是,为了获取实时的位置更新,可以使用`LocationManager`的`requestLocationUpdates()`方法,并提供一个`LocationListener`来处理位置变化的回调。 此外,从Android 6.0(API级别23)开始,运行时权限...

    LocationManager位置管理Android

    摘要:Java源码,Android,Android源码 Android源码位置管理简单应用,涉及定位,LocationManager源代码下载,源码爱好者Java源码频道为您提供丰富的Android开发小实例,助想学习Android程序设计的朋友一臂之力,本...

    Android代码-android-module-locationmanager

    implementation 'com.github.grumpyshoe:android-module-locationmanager:1.1.0' Usage Get instance of LocationManager:val locationManager : LocationManager = LocationManagerImpl() In order to locate ...

    android获取GPS经纬度,并根据经纬度获取准确地址(纯原生,不用任何第三方sdk)

    3. **纯原生获取经纬度**:纯原生获取经纬度意味着不依赖任何第三方SDK,而是直接使用Android SDK中的Location服务。首先,我们需要在AndroidManifest.xml中请求ACCESS_FINE_LOCATION权限。然后,创建...

    LocationManager

    在Android开发中,LocationManager与LocationProvider结合使用,可以实现GPS、网络定位等多种定位方式,为用户提供准确的位置服务。下面我们将深入探讨LocationManager的相关知识点。 1. **LocationManager介绍** ...

    LocationManager 自用中文资料

    `LocationManager`是Android系统中的一个关键类,用于获取设备的地理位置信息。它提供了一种方式来访问系统定位服务,让应用能够定期更新位置信息,或者在设备接近特定地理位置时触发预设的意图(Intent)。以下是对...

    LocationManager 学习

    在Android应用开发中,理解并熟练使用LocationManager是构建地图导航、定位追踪等与地理位置相关功能的基础。本教程将深入探讨LocationManager的核心概念、使用方法以及最佳实践。 一、LocationManager简介 ...

    android基于Gps 定位和基站定位获取经纬度

    在Android中,我们可以使用`LocationManager`服务来请求GPS定位服务。首先,需要在AndroidManifest.xml文件中添加必要的权限: ```xml &lt;uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" ...

    android根据GPS获取经纬度和海拔

    然后,我们可以使用Android的LocationManager服务来请求位置更新。LocationManager提供了一个接口,用于获取来自不同位置提供者(如GPS或网络)的位置信息: ```java LocationManager locationManager = ...

    LocationManager获取GPS信息

    在Android系统中,LocationManager是用于获取地理位置信息的关键服务,它允许应用从各种位置提供者(如GPS或网络)获取位置更新。这个服务是Android框架的一部分,为开发者提供了丰富的功能来实现定位相关的应用需求...

Global site tag (gtag.js) - Google Analytics