本文实例为大家分享了Android获取位置信息的具体代码,供大家参考,具体内容如下

1.位置服务的简介:位置服务,英文翻译为Location-Based Services,缩写为LBS,又称为定位服务或基于位置的服务,融合了GPS定位、移动通信、导航等多种技术,提供与空间位置相关的综合应用服务,基于位置的服务发展很迅速,涉及商务、医疗、工作和生活的各个方面,为用户提供定位、追踪和敏感区域警告等一系列服务。比如谷歌地图,百度地图,都需要通过位置服务。

2.Android平台下支持提供位置服务的API,在开发过程中主要用到LocationManager和LocationProviders对象:

(1).LocationManager可以用来获取当前的位置,追踪设备的移动路线,或设定敏感区域,在进入或离开敏感区域时设备会发出特定警报 。

(2).LocationProviders则是提供定位功能的组件集合,集合中的每种组件以不同的技术提供设备的当前位置,区别在于定位的精度、速度和成本等方面 。

3.接下来将讲述一个如何实现获取位置的经纬度,并且如果位置改变,如何通过位置的改变,经纬度也发生变化的例子,这里以LocationManager对象为例:

(1).首先,第一步,获取LocationManager对象,可以通过调用android.app.Activity.getSystemService()函数获取,代码如下:

String serviceString = Context.LOCATION_SERVICE;// 获取的是位置服务

LocationManager locationManager = (LocationManager) getSystemService(serviceString);// 调用getSystemService()方法来获取LocationManager对象

其中的LOCATION_SERVICE是Android支持的系统级服务,控制位置等设备的更新。

(2).在获取到LocationManager对象后,还需要指定LocationManager的定位方法 ,然后才能够调用LocationManager.getLastKnowLocation()方法获取当前位置 ,目前LocationManager主要有两种定位方法

GPS定位:可以提供更加精确的位置信息,但定位速度和质量受到卫星数量和环境情况的影响,需要android.permissions.ACCESS_FINE_LOCATION用户权限。

网络定位:提供的位置信息精度差,但速度较GPS定位要迅速 ,利用基站或WiFi访问的提供近似的位置信息,需要具有如下权限:android.permission.ACCESS_COARSE_LOCATION 或 android.permission.ACCESS_FINE_LOCATION。

注:(使用GPS定位和网络定位的LocationManager类的静态常量不一样,GPS定位的LocationManager类的静态常量为:GPS_PROVIDER,网络定位的LocationManager类的静态常量为:NETWORK_PROVIDER,这两个静态常量在获取当前位置时要用到。)

下面以使用GPS定位为例,获取位置信息代码如下:

String provider = LocationManager.GPS_PROVIDER;// 指定LocationManager的定位方法

Location location = locationManager.getLastKnownLocation(provider);// 调用getLastKnownLocation()方法获取当前的位置信息

(3).通过调用Location中的getLatitude()和getLonggitude()方法可以分别获取位置信息中的纬度和经度,代码如下:

double lat = location.getLatitude();//获取纬度

double lng = location.getLongitude();//获取经度

(4).在很多提供定位服务的应用程序中,不仅需要获取当前的位置信息,还需要监视位置的变化,在位置改变时调用特定的处理方法 ,其中LocationManager提供了一种便捷、高效的位置监视方法requestLocationUpdates(),可以根据位置的距离变化和时间间隔设定,产生位置改变事件的条件,这样可以避免因微小的距离变化而产生大量的位置改变事件 ,LocationManager中设定监听位置变化的代码如下:

locationManager.requestLocationUpdates(provider, 2000, 10,locationListener);

// 产生位置改变事件的条件设定为距离改变10米,时间间隔为2秒,设定监听位置变化

接下来介绍上面这行代码的各个参数,第一个参数是我们之前指定LocationManager的定位方法,GPS定位或网络定位,第二个参数指的是产生位置改变事件的时间间隔,单位为微秒,第三个参数指的是距离条件,单位为米,第四个参数是回调函数,用于处理位置改变事件,即设置LocationListener监听器。总的来说,那一行代码将产生位置改变事件的条件设定为距离改变10米,时间间隔为2秒。

(5).实现locationListener的代码如下:

private final LocationListener locationListener = new LocationListener() {

@Override

public void onLocationChanged(Location location) {

// TODO Auto-generated method stub

}

@Override

public void onProviderDisabled(String arg0) {

// TODO Auto-generated method stub

}

@Override

public void onProviderEnabled(String arg0) {

// TODO Auto-generated method stub

}

@Override

public void onStatusChanged(String arg0, int arg1, Bundle arg2) {

// TODO Auto-generated method stub

}

};

接下来对上面实现LocationListener的代码下的四个方法进行简单介绍:

onLocationChanged()这个方法在位置改变时被调用,onProviderDisabled()这个方法在用户禁用具有定位功能的硬件时被调用,onProviderEnabled()这个方法在用户启用具有定位功能的硬件时被调用,onStatusChanged()这个方法在定位功能硬件状态改变时被调用,例如,从不可获取位置信息状态到可以获取位置信息的状态,反之亦然 。

(6).为了使GPS定位功能生效,还需要在AndroidManifest.xml文件中加入用户许可,即加入下面这行代码,加入用户权限:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

android 获取当前坐标,Android获取位置信息的方法相关推荐

  1. android动态获取地理位置权限,Android6.0获取GPS定位和获取位置权限和位置信息的方法...

    1.添加权限--6.0之后要动态获取,下面会说 2.直接上代码,不多说,代码中注释很详细. private static final int BAIDU_READ_PHONE_STATE = 100; ...

  2. android获取手机sim卡信息,Android获取手机SIM卡运营商信息的方法

    本文实例讲述了Android获取手机SIM卡运营商信息的方法,对于Android程序设计有非常实用的价值.分享给大家供大家参考之用.具体方法如下: 主要功能代码如下: /** * 获取SIM卡运营商 ...

  3. 获取视频位置信息的方法

    获取视频位置信息的方法public static String getVideoLocationInfo(String path) {MediaMetadataRetriever metadataRe ...

  4. android 拨打电话 发送短信 权限,Android开发实现拨打电话与发送信息的方法分析...

    本文实例讲述了Android开发实现拨打电话与发送信息的方法.分享给大家供大家参考,具体如下: xml布局: android:layout_width="fill_parent" ...

  5. Android开发获取当前经纬度和详细位置信息(原生代码实现)简单案例

    文章目录 Android定位(经纬度+当前位置信息) 申请权限 LocationManage位置管理器 完整代码 Android定位(经纬度+当前位置信息) 我相信大家在Android开发中应该都有遇 ...

  6. android input鼠标坐标,android - 如何在EditText中设置光标位置?

    android - 如何在EditText中设置光标位置? 有两个EditText,在加载页面时,第一个EditText中设置了一个文本,所以现在光标将在EditText的起始位置,我想在第二个Edi ...

  7. html5获取gps坐标,html5获取手机GPS信息的示例代码

    html5获取手机GPS信息的示例代码function getLocation() { if (navigator.geolocation) { navigator.geolocation.getCu ...

  8. 获取手机或电脑GPS位置信息(定位平台)

    获取GPS定位平台 原理: javascript访问手机GPS位置信息 链接: http://14.18.103.46:8000/location/index (电信某云无法直接开启80端口,坑 ̄へ ̄ ...

  9. PiaolinPlatformV2.0.0 - 获取手机或电脑GPS位置信息(定位平台)

    前言 飘零定位平台于 2019/02/07 正式上线第一代(地址:https://blog.csdn.net/piaolin_ying/article/details/86772610),上线后反响良 ...

最新文章

  1. 将编译器pass添加到Relay
  2. [JAVA] DUMP
  3. centos7系统/etc/resolv.conf 配置DNS客户
  4. Asp.net读取AD域信息的方法(一)
  5. Intel VT学习笔记(五)—— 调试技巧
  6. mac中安装activeMQ
  7. 开源mindmap_Java开发人员访谈的MindMap
  8. hbase1.1.1 连接集群_hbase1.2.3集群搭建
  9. MSSQL数据库中row_number()函数
  10. Spring Cloud之Feign客户端调用工具
  11. php使用自定义ip,PHP跨平台获取服务器IP地址自定义函数分享
  12. 规划极限编程阅读笔记03
  13. win10安装mvn,安装ojdbc7.jar
  14. centos安装网易云音乐~
  15. Axure绘制开关按钮
  16. 效率是绳,质量是命!——浅析如何运用UML来提高手游团队的绳命质量
  17. python读取grib2文件
  18. 180度舵机使用经验
  19. 【编程开发】之微信登录
  20. 智能操作外卖订单 聚归客V2.0平台多维赋能餐饮商户

热门文章

  1. 盛大借助Bambook程序达人赛推开放平台
  2. 【测试】了解软件测试
  3. Linux Centos7目录结构总结
  4. IDEA 创建package包
  5. 【算法】输油管道问题
  6. git常见操作和常见错误
  7. PHP--有道(百度)文字或语句转MP3音频文件
  8. C语言——池塘夜降彩色雨
  9. 技术人就得“软硬兼施”
  10. 如何将推荐系统与异构数据巧妙结合——专访微软资深研究员谢幸博士