Android学习-基于位置的服务

Android开发—Service学习一(实时给服务器发送GPS位置) 学习来源:《网易云课堂-Android4.0应用开发第一季》 Service作为Android的四大组件之一,常见的功能如闹钟、音乐播放、网络加载图片等都是Service实现的。 今天总结一下我之前写得通过Service给服务器实时发送GPS信息。 首先,需要提出的是,在Android开发官网中,有关于以下的说明: Most confusion about the Serv 阅读详情

基于位置的服务简介

基于位置的服务简称LBS,主要的工作原理是利用无线电通讯网络或者GPS等定位方式来确定出移动设备所在的位置。

基于位置的服务的核心就是要先确定出用户所在的位置。通常有两种计数方式可以实现:一种是通过GPS定位,一种是通过网络定位。

GPS定位的工作原理是集于手机内置的GPS硬件直接和卫星交互来获取当前的经纬度信息,这种定位方式精确度非常高,但缺点是只能在室外使用,室内基本无法接收到卫星的信号。

网络定位的工作原理是根据手机当前网络附近的三个基站进行测速,以此计算出手机和每个基站基站的距离,再通过三角定位确定出一个大致的位置,这种定位方式精确度一般,但优点是在室内室外都可以使用。

Android对这两种定位方式都提供了响应的API支持,但Google的网络服务在中国不可访问,从而导致网络定位方式的API失效。而GPS定位虽然不需要网络。但必须要在室外才能使用,因此在室外开发的时候很有可能遇到不管使用哪种定位方式都无法成功定位的情况。所以使用一些国内的第三方公司的SDK。目前国内在这一领域做的比较好的一个是百度一个是高德。学习一下百度在LBS方面提供的丰富多彩的功能。

申请API Key

  • 要想在自己的应用程序中使用百度的LBS功能,首先必须申请一个API Key。你需要拥有一个百度帐号才能进行申请。

  • 有了百度帐号之后,我们就可以申请成为一名百度开发者了,登录百度帐号,并打开http://developer.baidu.com/user/reg

  • 接着访问http://lbsyun.baidu.com/apiconsole/key 这个地址

  • 接下来去申请API Key了

应用名称随便填,应用类型选择是Android SDK,启动服务保持默认即可,如图:
在这里插入图片描述

那么这个发布版SHA1和开发便SHA1又是什么呢?

  • 这是我们申请API Key所必须填写的一个字段,它是指打包程序时所用签名文件的SHA1指纹,可以通过AS查看到。

打开AS中的任意一个项目,在这里插入图片描述
在这里插入图片描述
如图:
在这里插入图片描述
这里展示了一个Android Stdio项目中所有内置的Gradle Tasks,其中signingReport这个Task就可以用来查看签名文件。双击signingReport,如图:
在这里插入图片描述
下面就是我们所需要的SHA1指纹
在这里插入图片描述

注意:目前我们使用的是debug.keystore文件所生成的指纹,这时Android自动生成的一个用于测试的签名文件。而当你的应用程序发布时还需要创建一个正式的签名文件,如果要得到它的指纹,可以在cmd中输入如下命令:
在这里插入图片描述
然后输入正确的密码就可以了。

那么也就是说,现在得到的这个SHA1指纹实际上是一个开发版的SHA1指纹,不过因为暂时还没有一个发布版的SHA1指纹,因此这两个值都填成一样的就可以了。

最后还剩一下个包名选项,虽然现在应用程序还不存在,但可以先将包名与定下来,比如就叫做com.example.lbstest,这样所有内容就填写完成了,如图:
在这里插入图片描述
接下来点提交,应用就应该创建成功了,如图:
在这里插入图片描述

使用百度定位

现在新建一个LBSTest项目,包名应该就会自动被命名为com.example.lbstest。另外需要注意,建议真机运行。

准备LBS SDK

在开始编码之前,还需要先将百度的LBS开放平台的SDK准备好
下载地址是:
http://lbsyun.baidu.com/sdk/download
会使用到基础地图和定位功能这两个SDK,勾选上,然后点击开发包下载即可。

下载完成后对该压缩包进行解压,其中会有一个libs目录,这里面的内容就是我们所需要的一切了。如图:
在这里插入图片描述
libs目录下的内容又分为两部分,BaiduLBS_Android.jar这个文件是Java层要使用到的,其他子目录下的so文件是Native层要用到的。so文件是用C/C++语言进行编写,然后再用NDK编译出来的。当然这里我们并不需要去编写C/C++的代码,因为百度都已经做好了封装,但是我们需要将libs目录下的每一个文件都放置到正确的位置。

首先观察一下当前的项目结构,会发现app模块下有一个libs目录,这里用来存放所有的jar包,将BaiduLBS_Android.jar复制到这里,如图:
在这里插入图片描述

接下来展开src/main目录,在这里插入图片描述

再创建一个名为jniLibs的目录,这里就是专门用来存放so文件的,然后把压缩包里的其他所有目录直接复制到这里,如图:
在这里插入图片描述

另外,虽然所有新创建的项目中,app/build.gradle文件都会默认配置以下这段说明:
在这里插入图片描述
这表示会将libs目录下所有以.jar结尾的文件添加到当前项目的引用中。

但是由于我们是直接将Jar包复制到libs目录下的,并没有修改gradle文件,因此不会弹出我们平常熟悉的Sync Now提示。
这时候必须手动点击一下Android Stdio顶部工具栏中的Sync按钮,不然项目将无法引用到Jar包提供的任何接口。

确定自己的经纬度

首先修改activity_main.xml中的代码,如下:

在这里插入图片描述

一个TextView控件,用于稍后显示当前位置的经纬度信息。

然后修改AndroidManifest.xml文件中的代码,如下:
在这里插入图片描述
在这里插入图片描述
文件改动很多。
首先添加了很多权限声明,每一个声明都是百度LBS SDK内部要用到的。

然后在标签的内部添加了一个标签,这个标签的android:name部分是固定的,必须填com.baidu.lbsapi.API_KEY, android:value部分则应该填入我们之前获取的API Key。

最后还需要再注册一个LBS SDK中的服务,不用对这个服务的名字感到疑惑,因为百度LBS SDK中的代码都是混淆过的。(???)

接下来修改MainActivity中的代码,如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在onCreate方法中,

  • 我们首先创建了一个LoactionClient的实例,LoactionClient的构建函数接受一个Context参数,这里调用getApplicationContenxt方法来获取一个全局的Context参数并传入。
  • 然后调用LoactionClient的registerLocationListener方法来注册一个定位监听器,当我们获取位置信息时,就会回调这个定位监听器。

接下来看这里运行时权限的用法,用于我们在AndroidManifest.xml中声明了很多权限,有四个权限,但是有两个都属于同一个权限组。

一次性申请三个权限:

  • 首先创建一个空的List集合,然后以此判断这三个权限有没有被授权,如果没有就添加到List集合中,最后将List转换成数组,再调用ActivityCompat.requestPermission方法一次性申请。

除此之外,

onRequestPermissionResult方法中对权限申请结果的逻辑处理也和之前有所不同,这次我们通过一个循环将申请的每个权限都进行了判断,如果有一个权限被拒绝,那么就直接调用finish方法关闭当前程序,只有当所有权限都被用户同意了,才回到i奥永requestLoaction方法开始地理位置定位。

requestLoaction方法中的代码比较简答, 只是调用了一个LocationClient的start方法方法就能开始定位了。定位的结果会回调到前面注册的监听器中,也就是MyLocationListener。

观察MyLocationListener的onReceiveLocation方法中,这里我们通过BDLoaction的getLatitude方法来获取当前位置的维度,通过getLongitude获取当前位置的经度,通过getLocType方法获取当前的定位方式,最终将结果组装成一个字符串,显示到TextView上面。

不过,在默认情况下,调用LocationClient的start方法只会定位一次,如果我们正在快速移动中,怎样才能

实时更新当前的位置

呢?

为此百度LBS SDK提供了一系列的设置方法,来允许我们更改默认的行为,修改MainActivity中的代码,如下:
在这里插入图片描述在这里插入图片描述

  • 这里增加了一个initLocation方法,在initLocation方法中我们创建了一个LocationClientOption对象,然后调用它的setScanSpan方法来设置更新的间隔。

这里传入了5000,表示每五秒钟会更新一下当前的位置。

  • 最后记得在活动销毁的时候要调用LocationClient的stop方法来停止定位,不然应用程序会持续在后台不停的进行定位。

选择定位模式

刚刚使用的是网络定位。那么如何才能切换到精确度更高的GPS定位呢?

首先GPS定位功能必须要由用户主动去启用才行,不然任何应用程序都无法使用GPS获取到手机当前的位置信息。

高精度模式表示允许使用GPS、无线网络、蓝牙、或者移动网络来进行定位,节电模式表示仅允许无线网络、蓝牙、或者移动网络来进行定位,而仅限设备模式表示仅允许使用GPS进行定位。
也就是说如果我们想使用GPS,这里必须要选择第一或者第三。

只有定位操作真正开始的时候才会影响手机的电量。

在这里插入图片描述

你也可以强制指定只使用GPS定位, 修改MainActivity中的代码,如下:
在这里插入图片描述

这里setLocationMode方法来将定位模式指定成传感器模式,也就是说只能使用GPS进行定位。

看得懂的位置信息

虽然获取到了设备的经纬度信息,但一般人看不懂,为了更加直观的阅读,学习如何看得懂的位置信息。

百度LBS SDK在这方面提供了非常好的支持,只需要一些简单的接口调用就可以得到当前位置的各种丰富的地址信息。

修改MainActivity中的代码,如下:
在这里插入图片描述
在这里插入图片描述

首先在initLocation方法中,调用了LocationClientOption的setIsNeedAddress方法,并传入true,这就表示我们需要获取当前位置的详细地址信息。

接下来在MyLocationListener的onReceiveLocation方法就可以获取到各种丰富的地址信息了,调用getCountry方法可以得到当前所在国家,以此类推方法。。

由于获取地址信息一定需要用到网络,因此即使我们将定位模式指定成了Device_Sensors,也会自动开启网络定位功能。

使用百度地图

在自己的应用程序里加入地图功能。

让地图显示出来
准备好LBS SDK(其中包含了地图功能)

直接在LBSTest项目基础上进行,修改activity_main.xml中的代码,如下:
在这里插入图片描述
在这里插入图片描述
布局文件中新放置了一个MapView控件,并让他填充满整个屏幕。这个MapView是由百度提供的自定义控件,所以在使用它的时候需要将完整的包名加上。另外,之前用于显示定位信息的TextView现在暂时用不到了,我们将他的visibility属性指定成gone,让他在界面上隐藏起来。

接下来修改MainAcitivity中的代码,如下:

在这里插入图片描述
在这里插入图片描述

  • 这里代码首先调用了SDKInitializer的initialize方法来进行初始化操作,initialize方法接受一个Context参数,这里调用getApplicationContext方法来获取一个全局的Context参数并传入。
  • 注意初始化操作一定要在setContentView方法之前调用,不然会出错。
  • 接下来调用findviewbyid获取到MapView的实例。
  • 另外需要重写onResume、onPause和onDestroy这三个方法以便于对实例进行管理。

移动到我的位置

上面获取到的是一张默认的地图,显示的是北京市中心的位置。

百度LBS SDK的API中提供了一个BaiduMap类,它是地图的总控制器,调用MapView的getMap方法就可以获取到BaiduMap的实例,如下:
在这里插入图片描述

有了BaiduMap后,我们就能对地图进行各种各样的操作了,比如设置地图的缩放级别以及将地图移动到某一个经纬度上。

百度地图将缩放的级别取值范围限定在3-19之间,其中小数也可取,值越大地图显示信息越精细。
比如想要设置为12.5,如图:
在这里插入图片描述

  • 其中MapStatusUpdateFactory的zoomTo方法接受一个float型的参数,就是用于设置缩放级别的,这里传入12.5f。

  • zoomTo方法返回一个MapStatusUpdate对象,把这个对象传入BaiduMap的animateMapStatus方法当中即可完成缩放功能。

如何让地图移动到某一个经纬度上?

借助LatLng类。LatLng类并没有太多用法,主要就是存放经纬度值的,它的构造方法接受两个参数,第一个参数是纬度值,第二个就是经度值。

  • 之后调用MapStatusUpdateFactory的newLatLng方法将LatLng对象传入,newLatLng方法返回的也是一个MapStatusUpdate对象,再把这个对象传入BaiduMap的animateMapStatus方法当中。就可以将地图移动到指定的经纬度上了。

如图:
在这里插入图片描述

了解了这些知识之后,接下来再去实现将地图快速移动到自己位置的功能就变得非常简单了。首先用定位技术先获取到自己当前的经纬度,然后再按照上述方法来将地图移动到指定位置即可。

完善,修改活动中代码:

在这里插入图片描述
在这里插入图片描述
新加入了一个navigateTo方法。
这个方法首先将BDLocation对象中的地理位置取出并封装到LatLng对象中,然后调用MapStatusUpdateFactory的newLatLng方法并将LatLng对象传入,接着将返回的MapStatusUpdate对象作为参数传入到Baidumap的animateMapStatus方法中。
上述代码使用了一个isFirstLocate变量,作用是为了防止多次调用animateMapStatus方法,因为将地图移到我们当前的位置只需要在程序第一次定位的时候调用一次就可以了。

让“我”显示在地图上

通常情况下手机地图上应该会有一个小光标,用于显示设备当前所在的位置,并且如果设备正在移动的话,那么这个光标也会跟着一起移动。
现在对现有代码进行扩展。

百度LBS SDK当中提供了一个MyLocationData.Bulider类,这个类是用来封装设备当前所在位置的,我们只需要将经纬度信息传入到这个类的相应方法当中就可以了,如下:

在这里插入图片描述

  • MyLocationData.Bulider类还提供了一个build方法,当我们把要封装的信息都设置完成之后,只需要调用一下它的bulid方法,就会生成一个MyLocationData实例,然后再将这个实例传入到BaiduMap的setMyLocationData方法当中,就可以让折别的位置显示在地图上了。

写法如下:
在这里插入图片描述

现在修改活动中代码,如下:

在这里插入图片描述
在这里插入图片描述

  • 在navigateTo方法中,添加了MyLocationData的构建逻辑,将Location中包含的经纬度分别封装到了MyLocationData.Builder当中,最后把MyLocationData设置到BaiduMap的setMyLocationData方法当中。
  • 注意这段逻辑必须写在isFirstLocate这个if条件的外面,因为让地图移动到我们当前位置下只需要第一次定位的时候执行,但是设备在地图上显示的位置却应该是随着设备移动而实时改变的。
  • 根据百度地图的限制,如果我们想要使用这一功能,一定要事先调用BaiduMap的setMyLocationEnabled方法将此功能开启,否则设备的位置将无法在地图上显示,而在程序退出的时候,也要记得将此功能关掉。
Android学习-- 基于位置的服务 LBS(基于百度地图Android SDK)--定位SDK 前两天学习了一下Android的特色--LBS(基于百度地图Android SDK)。有些坑还是得填下,避免以后用到时忘记了。 一 .申请API_KEY 1)http://lbsyun.baidu.com/ :在这里注册并申请。注册之后出现应用列表 2)选择创建应用:下图所示 PS:SHA1找了我好久 按照书上面的,资料上看了,左侧选择项目目录类型project,打开右侧 阅读详情

相关推荐

最新全国基站lbs定位库 基站定位 lbs定位数据库

最新全国基站lbs定位库包含全国移动联通电信全网lbs位置数据

基于位置的服务——百度地图SDK练习

基于位置的服务所围绕的核心就是要先确定出用户所在的位置。通常有两种技术方式可以实现:一种是通过GPS定位,一种是通过网络定位。Android对这两种定位方式都提供了相应的API支持。但由于众所周知的原因,Google的网络服务不能使用,而GPS定位必须要在室外才可以使用。所以使用了国内第三方公司——百度的SDK。

JluTiger316的博客 616

wsl2上运行带有Isaac Gym的程序报错: GPU Pipeline: disabled

显示GPU Pipeline:disabled,查找相关文档发现是WSL2目前不支持Isaac Gym,时,想要在wsl2上运行,最后报错如下。

2303_78660611的博客 956

Android studio百度地图的使用

由于某些原因Google的网络服务在中国不可访问,从而导致网络定位方式的API失效,而GPS定位虽然不用网络,但是必须在室外才能进行有效的定位。基于以上原因可以使用第三方公司的SDK,国内在这领域做得比较好的是百度、高德 一、申请API Key 要想使用百度的LBS功能,首先必须申请一个API Key。需要百度账号才能申请,没有的话可以去注册一个。登录你的百度账号,打开http://devel

superSmart_Dong的博客 1489

vcs中systemverilog和c/c++联合仿真

前言 systemverilog中,可以通过DPI、PLI来与外部其它语言的程序进行交互。PLI又分为三类,TF、ACC和VPI,可以认为是PLI技术的三代演进: 其中VPI(PLI3.0)是TF/ACC的一个超集,目前使用的PLI基本上都是VPI。 与PLI技术相独立的另一个技术就是DPI,DPI技术简化了systemverilog与foreign language的交互步骤,对于开发者相对友好,所以使用相对广泛一些。 本文不对DPI中程序调用/数据交互展开讨论(这部分可以参考绿皮书..

kevindas的博客 1万+

保姆级教程:用NX机电概念设计与RobotStudio实现ModbusTCP联合仿真(附完整代码)

本文提供了一份详细的NX机电概念设计与RobotStudio联合仿真实战教程。通过ModbusTCP协议构建数据桥梁,实现机械行为与机器人控制逻辑的双向实时同步。文章从环境搭建、信号配置、RAPID代码编写到联合调试,逐步拆解了实现数字孪生核心链路的关键步骤,并分享了常见问题排查方法,助力工程师在虚拟环境中提前验证产线协同。

sat99的博客 1095

Android获取经纬度

最近项目中要对用户的地理位置进行定位,本节记录了Android中经纬度的获取过程。 一、Android中三种定位方式     GPS定位:手机一般都有GPS芯片,卫星信号已经覆盖全球,手机接收卫星发射的信号,可以推算出手机到每颗卫星的距离,根据卫星的位置,推测出手机的位置。GPS定位适用于开阔的户外,并且天气晴朗条件下,室内、室外有遮挡物、室外大楼密集等情况,接收不到卫星信号,会定位失败。GP

IT从业者,生活精致一点,工作认真一点! 7707

从交换机安全配置,看常见局域网攻击

前言 构建零信任网络,自然离不开网络准入(NAC),这就涉及到交换机的一些安全测试,于是有了此文《从交换机安全配置看常见局域网攻击》。 交换机安全配置 如本文标题所说从交换机安全配置看常见的局域网攻击,那么下面提到的各种攻击方式,自然是建立在交换机安全配置之上来说的。我们通过h3c官方提供的《H3C 交换机安全加固手册》和《安全配置指导》,从这两份手册可以看出交换机支持的安全配置非常多,基本已经覆盖了各种我们熟知局域网攻击。下面就挑几个典型的攻击方式进行演示。 arp欺骗 【一>所有资源获取&lt

kali_Ma的博客 1万+

Android经纬度识别是那座城市

private List<Address> getAddress(double lat,double lon) { List<Address> result = null; try { Geocoder gc = new Geocoder(this, Locale.getDefault()); result = gc.getFromLocation(lat, lon, 1); } catch (E

qq_44624237的博客 257

Unity URP热扭曲效果实战:如何让半透明物体也‘动’起来(附完整Shader代码)

本文深入解析Unity URP管线中热扭曲效果无法影响半透明物体的核心原因,并提供一套完整的实战解决方案。通过编写自定义Shader,并巧妙利用URP的Render Objects渲染器功能,成功让指定半透明物体(如粒子特效)也能被扭曲效果影响,从而制作出火焰、热浪等更具视觉冲击力的特效。文末附有完整的Shader代码与进阶优化技巧。

pz890123的博客 500

Win11笔记本BIOS设置避坑大全:Secure Boot、RST、UEFI引导,一次讲清

本文详细解析了Win11笔记本BIOS设置中的关键问题,包括Secure Boot、Intel RST和UEFI引导的配置方法,帮助用户避开双系统安装中的常见陷阱。特别针对不同品牌笔记本的BIOS界面差异,提供了实用的操作指南和优化建议,确保系统兼容性和启动效率。

weixin_29251131的博客 686

Android学习笔记(十一)基于位置的服务

11.1 简介         基于位置的服务简称 LBS,主要的工作原理就是利用无线电通讯网络或 GPS 等定位方式来确定出移动设备所在的位置。有了Android系统作为载体,才得以广泛应用。 11.2 找到自己的位置 11.2.1 基本用法 在Android中基于位置的服务主要借助LocationManager类来实现。基本使用方法如下: (1)获取实例 LocationM

代码与酒 2003

OpenOCD入门到精通:第20章 Target 子系统源码分析

摘要:本章深入分析OpenOCD Target子系统的核心实现机制。重点包括:1) 通过target_type虚函数表实现多架构抽象,支持ARM、RISC-V等30+种目标;2) ARM ADIv5协议栈实现,包含DAP/AP核心数据结构和访问机制;3) 分层架构设计,从调试接口层到传输层的完整调用链路。系统采用面向对象思想,统一管理目标状态、寄存器缓存、断点/观察点等调试要素,为上层提供标准化的调试操作接口。

从事嵌入式linux android驱动开发,拥有全栈能力 176

安卓基于位置的服务学习整理

借助LocationManager类实现定位 在AndroidMainfest.xml声明权限 //实例化LocationManager locationManager=(LocationManager)getSystemService(Context.LOCATION_SERVICE); //获取可用的位置提供器 List providerList=locationMa

wanghorange的博客 311

小工匠聊架构-分布式场景下的并发幂等性常见的解决方案

Pre 我们来回顾下单体时代 单体时代,应用部署在一台主机上,可以使用JVM级别的锁来控制并发请求 。 随着应用规模的不断扩大,集群化或者微服务化的分布式部署越来越普及,每个应用都是一个单独的JVM应用,所以单体时代的这种处理方式已经无法满足当前架构下的业务需求了。 JVM级别的锁已经无法满足跨进程之间访问控制了,进而演化出来了分布式锁。 分布式锁 能否解决幂等性问题? 分布式锁解决什么问题? 简言之: 解决跨进程间无法共享本地资源的问题 ,解决的是分布式场景下并发访问的问题。 为什么需要确保并发.

小工匠 2万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Android学习笔记——基于位置的服务

参考书籍:Android第一行代码(第二版).郭霖著只有移动设备上才能实现的技术——基于位置的服务(LBS)。定位通常有两种技术方式:GPS定位(精确度很高,只能室外使用)和网络定位(根据手机当前网络附近的三个基站测速,计算出手机和每个基站间距离,通过三角定位确定出大概位置,精确度一般,室内外都能使用)。Android有相应API支持这两种定位方式,但网络定位API在中国用不了(Google网络服务

lanjingling09的专栏 3292

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Android开发学习之位置服务

(学习参考书:第一行代码第2版) 在开始之前,需要到提供LBS服务的API开发平台申请注册和申请API key。百度、高德地图均可,本文采用百度的API。 一、配置LBS SDK 选择所需功能下载jar文件 解压后将下载文件夹中libs目录下的jar文件复制到项目的app/libs文件夹下 在app/src/main目录下创建jniLibs目录,放入下载文件夹中除了libs的其他文件(即so文件) 点击Sync按钮同步,查看app/build.gradle是否存在 implementation files

YCF8746的博客 502

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Android学习记录——11.基于位置的服务(LBS)

文章目录1.基于位置的服务简介2.申请API Key3.使用百度定位3.1 准备LBS SDK3.2 准备自己位置的经纬度3.3 选择定位模式3.4 看得懂的位置信息4.使用百度地图4.1 让地图显示出来4.2 移动到我的位置4.3 让“我”显示在地图上 1.基于位置的服务简介 基于位置的服务简称LBS,随着移动互联网的兴起,这个技术在最近的几年里十分火爆。其 实它本身并不是什么时髦的技术,主要的...

赈川 2697

Android学习笔记—— 十五 、基于位置的服务

因为谷歌的定位API无法使用,所以使用百度地图的API:百度地图开放平台 1. 注册和获取密钥 官方教程:注册和获取密钥 2. 下载百度地图开放平台的SDK 下载位置:Android 地图 SDK 下载及配置SDK参考官方教程:Android Studio工程配置 3. Android Studio的相关配置流程 官方教程:Android Studio配置 4. 基本使用方法...

北方提不起劲 265

android学习笔记之位置服务

android的提供了一个Location类来做为位置相关的操作接口,我们可以通过操作它来实现有关位置的各种操作。 大致分为4步: 获取LocationManager 通过LocationManager的requestLocationUpdates()方法实现监听 通过LocationManager的getLastKnownLocation()方法获取最后一次定位信息(这东西返回的就是一个Loc...

晓晓的博客 401

Android学习之基础知识十四 — Android特色开发之基于位置的服务

一、基于位置的服务简介   LBS:基于位置的服务。随着移动互联网的兴起,这个技术在最近的几年里十分火爆。其实它本身并不是什么时髦的技术,主要的工作原理就是利用无线电通讯网络或GPS等定位方式来确定出移动设备所在的位置,而这种技术早在很多年前就已经出现了。   那么为什么LBS技术直到最近几年才开始流行呢?这主要是因为,在过去移动设备的功能及其有限,即使定位到了设备所在的位置,也就仅仅只是定位到...

SupperDemo 138

Android学习笔记之——基于位置的服务(location-based service)

基于位置的服务简称LBS,随着移动互联网的兴起,这个技术在最近的几年里十分火爆。其实它本身并不是什么时髦的技术,主要的工作原理就是利用无线电通讯网络或GPS等定位方式来确定出移动设备所在的位置,而这种定位技术早在很多年前就已经出现了。 ...

gwpscut的博客 3803

Android学习心得(六)——位置服务

本节主要是介绍一下gps的使用,google map和gps的结合是android上主要应用之一,android market中,此类产品所占比例不小。 我们在上节的代码中添加如下内容: [code="java"] LocationManager lm; MyLocationListener locationListener; lm = (LocationManager) get...

Android交流 209

《第一行代码Android》学习总结第十一章 基于位置的服务

        基于位置的服务,简称LBS。它的工作原理就是利用无线电通讯网络或GPS等定位方式来确定出移动设备所在的位置。 通常有两种技术方式可以实现:         1、通过GPS定位,主要工作原理是基于手机内置的GPS硬件直接和卫星交互来获取当前经纬度信息,这种定位方式精确度非常高,但缺点是只能在室外使用,室内基本无法接收到卫星信号。         2、通过网络定位,主要工作原理是...

LBW9368的博客 1825

MONO For Android学习笔记之使用Location服务获取位置

使自己的应用获取位置时记得要给应用ACCESS_FINE_LOCATION权限打钩。如下图: 下面是全部应用代码:using System; using Android.App; using Android.Content; using Android.Runtime; using Android.Views; using Android.Widget; using Androi

u010867236的专栏 557
上一篇: Android学习-服务-Android多线程编程、服务的基本用法、服务的生命周期、前台服务、IntentService
下一篇: Android学习-Material Design
Vbbbbbbbbbbb
博客等级 码龄7年 11粉丝 39原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值