前一阵子,老大安排我写一个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
分享到:
相关推荐
以上就是使用Android的LocationManager API获取经纬度和卫星信息的基本步骤。在LocationDemo项目中,你可以找到完整的示例代码,帮助你更熟练地运用这些功能。通过深入理解和实践,你可以创建出更加智能和高效的位置...
在Android开发中,LocationManager是系统提供的一种服务,用于获取设备的地理位置信息,如经度、纬度等。本文将详细介绍如何使用LocationManager来获取这些关键数据。 首先,要使用LocationManager,你需要在...
gps定位,实测可用. ...LocationManager本身提供了选择最好的provider的方法: // 获取最好的定位方式 String provider = locationManager.getBestProvider(criteria, true); // true 代表从打开的设备中查找
这是一个利用LocationManager定位的实例demo,可获取经纬度,国家名称,城市名称,街道等信息。详细介绍请移步:http://blog.csdn.net/xiong_it/article/details/46968477
这是一个用户定位的示例 Main 类用于演示获取Location Provider Main2 类用于演示获取最佳的Location Provider,两个类要修改Manifest.xml 文件才能分别运行
RxLocationManager, RxJava在没有 Google Play Services的情况下环绕标准的Android LocationManager RxLocationManager 使用 standart LocationManager 。RxJava ( 1和 2 ) 和 Kotlin获取位置的Android库。 它不使用...
Android LocationManager获取经纬度信息,在不使用第三方地图SDK的情况下,也可以借助Android 本身的定位API来实现相关地理位置功能,相关博文见这里https://blog.csdn.net/diyangxia/article/details/90674393
Android Studio 实训操作题(五)实验7LocationManager基本用法.docx
Android提供了`LocationManager`服务来获取位置信息。通过`getSystemService(Context.LOCATION_SERVICE)`获取`LocationManager`实例,然后注册监听器,如`LocationListener`,来接收位置更新。 3. **GPS与网络定位...
需要注意的是,为了获取实时的位置更新,可以使用`LocationManager`的`requestLocationUpdates()`方法,并提供一个`LocationListener`来处理位置变化的回调。 此外,从Android 6.0(API级别23)开始,运行时权限...
摘要:Java源码,Android,Android源码 Android源码位置管理简单应用,涉及定位,LocationManager源代码下载,源码爱好者Java源码频道为您提供丰富的Android开发小实例,助想学习Android程序设计的朋友一臂之力,本...
implementation 'com.github.grumpyshoe:android-module-locationmanager:1.1.0' Usage Get instance of LocationManager:val locationManager : LocationManager = LocationManagerImpl() In order to locate ...
3. **纯原生获取经纬度**:纯原生获取经纬度意味着不依赖任何第三方SDK,而是直接使用Android SDK中的Location服务。首先,我们需要在AndroidManifest.xml中请求ACCESS_FINE_LOCATION权限。然后,创建...
在Android开发中,LocationManager与LocationProvider结合使用,可以实现GPS、网络定位等多种定位方式,为用户提供准确的位置服务。下面我们将深入探讨LocationManager的相关知识点。 1. **LocationManager介绍** ...
`LocationManager`是Android系统中的一个关键类,用于获取设备的地理位置信息。它提供了一种方式来访问系统定位服务,让应用能够定期更新位置信息,或者在设备接近特定地理位置时触发预设的意图(Intent)。以下是对...
在Android应用开发中,理解并熟练使用LocationManager是构建地图导航、定位追踪等与地理位置相关功能的基础。本教程将深入探讨LocationManager的核心概念、使用方法以及最佳实践。 一、LocationManager简介 ...
在Android中,我们可以使用`LocationManager`服务来请求GPS定位服务。首先,需要在AndroidManifest.xml文件中添加必要的权限: ```xml <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" ...
然后,我们可以使用Android的LocationManager服务来请求位置更新。LocationManager提供了一个接口,用于获取来自不同位置提供者(如GPS或网络)的位置信息: ```java LocationManager locationManager = ...
在Android系统中,LocationManager是用于获取地理位置信息的关键服务,它允许应用从各种位置提供者(如GPS或网络)获取位置更新。这个服务是Android框架的一部分,为开发者提供了丰富的功能来实现定位相关的应用需求...