`
wghjay
  • 浏览: 91257 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android中LocationManager的简单使用,获取当前位置

阅读更多

Android中LocationManager的提供了一系列方法来地理位置相关的问题,包括查询上一个已知位置;注册/注销来自某个 LocationProvider的周期性的位置更新;以及注册/注销接近某个坐标时对一个已定义Intent的触发等。今天我们就来看看Android 中LocatinManager的简单使用,以获取当前所在的位置为例。

首先,我们需要获取LocationManager的一个实例,这里需要注意的是他的实例只能通过下面这种方式来获取,直接实例化LocationManager是不被允许的。

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

得到了LocationManager的实例locatonManager以后,我们通过下面的语句来注册一个周期性的位置更新。

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,
 1000, 0, locationListener);

这句代码告诉系统,我们需要从GPS获取位置信息,并且是每隔1000ms更新一次,并且不考虑位置的变化。最后一个参数是LocationListener的一个引用,我们必须要实现这个类。

private final LocationListener locationListener = new LocationListener() {
    public void onLocationChanged(Location location) { //当坐标改变时触发此函数,如果Provider传进相同的坐标,它就不会被触发
        // log it when the location changes
        if (location != null) {
            Log.i("SuperMap", "Location changed : Lat: "
              + location.getLatitude() + " Lng: "
              + location.getLongitude());
        }
    }

    public void onProviderDisabled(String provider) {
    // Provider被disable时触发此函数,比如GPS被关闭
    }

    public void onProviderEnabled(String provider) {
    //  Provider被enable时触发此函数,比如GPS被打开
    }

    public void onStatusChanged(String provider, int status, Bundle extras) {
    // Provider的转态在可用、暂时不可用和无服务三个状态直接切换时触发此函数
    }
};

以上的这些步骤一般应当在Activity的onCreate()阶段完成。

在成功注册了一个周期性坐标更新以后,我们就随时可以通过下面的方法来取得当前的坐标了。

Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
double latitude = location.getLatitude();     //经度
double longitude = location.getLongitude(); //纬度
double altitude =  location.getAltitude();     //海拔

不过这时候,如果你尝试去运行这个LocationSample的话程序启动时多半就会报错,因为我们没有设置GPS相关的权限,解决方法也相当简单,在 AndroidManifest.xml中的block里添加下面这句即可解决权限的问题。详细的权限设置,请参考官方文档docs/reference /android /Manifest.permission.html

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

 

如果是在模拟器中调试的话,我们有两种方法来设置一个模拟的坐标值,第一种是通过DDMS,我们可以在eclipse的ADT插件中使用这种方法,只要打开"Window" --&gt; "Show View" 中打开"Emulator Control" View即可看到如下的设置窗口,我们可以手动,或者通过KML和GPX文件来设置一个坐标。

另一种方法是使用geo命令,我们需要telnet到本机的5554端口,然后在命令行下输入类似于 geo fix -121.45356 46.51119 4392 这样的命令,后面三个参数分别代表了经度、纬度和(可选的)海拔。

 

原文:http://kryptonum.iteye.com/blog/363950

分享到:
评论

相关推荐

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

    在Android开发中,获取设备的当前位置以及地区名称是...以上就是Android获取当前位置及地区名称的完整实现过程中的关键知识点。在实际开发中,要根据应用的特性和用户需求,合理选择定位策略,同时关注性能和用户体验。

    android使用GPS获取当前地理位置

    在Android开发中,获取当前地理位置是一项常见的任务,通常我们依赖于GPS来实现精确的位置服务。在本文中,我们将深入探讨如何正确使用Android的GPS功能来获取地理位置,以及避免一些常见问题。 首先,避免使用`...

    Android下获取当前位置代码

    在Android平台上,获取设备的当前位置是一项常见的任务,这对于开发各种基于位置的应用程序至关重要。这篇描述提到了一个Android Demo,它展示了如何通过GPS和网络定位服务来获取设备的位置信息。下面我们将详细探讨...

    Android高级应用源码-android获取当前经纬度.zip

    这个"Android高级应用源码-android获取当前经纬度.zip"的压缩包很可能包含了一个示例项目,用于演示如何在Android应用程序中实现这一功能。让我们详细探讨一下这个过程涉及的关键知识点。 1. **权限声明**: 在...

    Android实现注册登录后 点击获取当前地理位置及经纬度坐标

    在Android应用开发中,获取用户当前的地理位置及经纬度坐标是一项常见的需求,这通常涉及到位置服务、网络通信以及数据解析等多个技术点。本项目通过Android Studio实现了一个完整的流程,包括用户注册登录、与...

    android studio获取当前经纬度的简单实例

    在Android开发中,获取...这个简单的实例展示了如何在Android Studio中获取当前经纬度的基本步骤。通过学习和实践,你可以进一步扩展这个功能,实现更多与地理位置相关的应用特性,比如导航、地图标记、地理围栏等。

    android获取当前经纬度

    这个“android 获取当前经纬度demo”提供了一种简单的方法来实现这一功能。以下将详细介绍如何在Android中获取经纬度以及相关知识点。 1. **定位服务基础** Android系统提供了`LocationManager`服务,它是获取地理...

    Android 利用GPS获取当前位置

    在Android系统中,获取当前位置是移动应用开发中的常见需求,主要通过集成GPS(全球定位系统)服务来实现。本文将详细讲解如何利用Android的GPS功能获取经度、纬度和海拔等位置信息。 首先,我们需要在...

    android获取手机位置

    在Android开发中,获取手机当前位置是一项常见的需求,这通常涉及到设备的定位服务。本文将详细介绍如何在Android应用中实现这一功能,以及两种主要的定位方法:GPS定位和网络定位。 1. GPS定位: GPS(全球定位...

    Android GPRS获取位置信息DEMO

    总之,"Android GPRS获取位置信息DEMO"展示了如何在Android应用中获取位置信息,这涉及到权限管理、定位服务的使用、位置更新的监听以及优化定位策略。通过学习和分析这个DEMO,开发者可以更好地理解和实现基于位置...

    android获取当前地址

    5. **获取当前位置**:在LocationListener的`onLocationChanged()`方法中,你可以获取到Location对象,它包含了经纬度信息: ```java double latitude = location.getLatitude(); // 经度 double longitude = ...

    android地图获取当前位置,气泡标志,点击气泡跳转到另一个界面

    本文将详细讲解如何在Android应用中实现"获取当前位置"、"设置气泡标志"以及"点击气泡跳转到另一个界面"这三个核心功能。 1. 获取当前位置: 在Android中,我们可以使用`LocationManager`和`LocationProvider`来...

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

    通过注册LocationListener或使用FusedLocationProviderClient,我们可以获取到设备的当前位置,包括经度、纬度、速度、海拔等信息。 2. **GPS经纬度**:经纬度是地球上地理位置的一种坐标表示方式。经度(Longitude...

    获取当前位置

    在IT行业中,获取当前位置是一项基础且重要的功能,尤其在移动应用和地理信息系统(GIS)中。这个功能使得设备能够提供用户其当前的经纬度坐标,为导航、定位服务、社交应用等多种用途提供支持。在本篇文章中,我们...

    自动获取当前所在城市

    以上就是Android中自动获取当前所在城市名字的基本步骤。在实际应用中,可能还需要考虑到用户隐私设置、定位精度、耗电量等因素,以及可能存在的网络延迟问题。在处理定位数据时,应遵循最佳实践,确保用户数据的...

    android动态的获取当前的位置

    本文将深入探讨如何在Android中动态地获取当前位置,并以每两秒刷新一次的频率进行更新。 首先,我们需要了解Android的位置服务框架,它包括`LocationManager`和`LocationProvider`两个主要组件。`LocationManager`...

    Android 获取当前经纬度

    在Android开发中,获取设备的当前经纬度是常见的需求,这通常用于实现定位服务,比如导航、地图应用或者提供基于位置的服务。以下将详细介绍两种主要的获取方法:GPS(全球定位系统)和网络定位,以及如何通过...

    android拍摄路面图片并获取当前经纬度上传

    在Android平台上,开发一款应用程序能够实现拍摄路面图片并获取到...以上就是关于“android拍摄图片并获取当前拍摄的经纬度进行上传”的主要技术实现点,涵盖了Android相机使用、地理位置获取和网络上传等关键步骤。

    AndroidGPS定位,获取经纬度位置

    本教程将深入探讨如何在Android应用程序中使用GPS获取经纬度坐标,并将其显示在TextView中。以下是一系列详细步骤和相关知识点: 1. **AndroidManifest.xml配置**: 在Android应用中使用GPS服务,必须在`...

    LocationManager

    LocationManager是Android系统中的一个重要组件,它负责管理设备上的位置服务,允许应用获取到设备当前的位置信息。在Android开发中,LocationManager与LocationProvider结合使用,可以实现GPS、网络定位等多种定位...

Global site tag (gtag.js) - Google Analytics