Android 集成腾讯定位
概述
在安卓软件开发过程中需要用到定位,在对比了国内比较知名的三种:
- 高德定位
- 百度定位
- 腾讯定位
后选择了第三种,腾讯定位,原因主要是:
- 支持获取WGS-84坐标
- 支持网络定位
由于众所周知的原因,在中国境内所有的出版电子地图都必须要经过至少一次加偏(也就是所谓的国测局火星坐标系),因此国内地图提供商为了更好的对接产品,纷纷推出了自家的坐标系,也就是在火星坐标系基础之上再次加偏的高德坐标、百度坐标。
坐标加偏之后再恢复就不那么容易了,解偏本身就会带来一些误差。
因此为了使得开发的软件有更好的扩展性,想要得到网络定位的WGS-84坐标,就要用到腾讯定位。
在使用的过程中遇到以下几个问题:
- 位置监听服务器注册失败
- so文件导入错误
配置定位
官网教程:Android定位SDK的安装和使用
下面记录以下主要流程和解决问题的方法:
第一步、导入库文件
找到开发包中的 libtencentloc.zip文件夹,拷贝相应目录下的so文件到目标工程中的 libs目录下。
jar包导入
找到开发包中的 TencentLocationSDKv4.3.0r196568.jar 文件,拷贝到目标工程中的 libs 目录下。
注意: 如果 TencentLocationSDKv4.3.0r196568.jar没有自动加入到工程的 build path 中,则需要手动添加。手动添加的步骤如下:右击工程,在 工程属性->Java Build Path->Libraries中选择“Add External JARs”,选定 TencentLocationSDKv4.3.0r196568.jar,确定后返回。这样您就可以在程序中使用腾讯地图定位SDK了。
so文件导入
讲需要的so文件导入,详细介绍如下
方法一:
将so文件导入如下的目录(若没有则新建)

深度截图_选择区域_20190519165452.png
方法二:
在build.gradle中加入如下代码:
之后讲so文件放入如下目录

深度截图_选择区域_20190519165751.png
第二步、配置 manifest及权限
权限声明
在 AndroidManifest.xml 中添加使用权限:
动态申请权限
android 6.0以上的系统需要动态申请一些敏感权限,这里涉及到定位权限,因此需要使用如下代码获取权限:
配置key
在 AndroidManifest.xml 中配置Key
第三步、创建位置监听器
TencentLocationListener 接口代表位置监听器,您的APP 通过位置监听器接收定位SDK的位置变化通知。创建位置监听器非常简单,通常您只需实现 TencentLocationListener 接口。如下所示:
第四步、创建定位请求
TencentLocationRequest 类代表定位请求, 您的APP通过向定位SDK发送定位请求来启动定位。通常您只需获取 TencentLocationRequest 实例即可,如下所示:
第五步、注册位置监视器
第六步、开始定位并获取定位结果
开始定位
注:在这一步可能会出现错误导致后面定位失败,开始定位的方法会返回一个特征码,标示定位监视器是否成功注册。
因此最好获取一下这个特征码,下表展示标识码含义: 返回值 | 含义 :-- | :-- 0 | 注册位置监听器成功 1 | 设备缺少使用腾讯定位SDK需要的基本条件 2 | 配置的 key 不正确 3 | 自动加载libtencentloc.so失败,可能由以下原因造成:
返回码3可能是以下原因造成: 1、这往往是由工程中的so与设备不兼容造成的,应该添加相应版本so文件; 2、如果您使用AndroidStudio,可能是gradle没有正确指向so文件加载位置,可以按照这里配置您的gradle; --------------------- 作者:隔壁大虾 来源:CSDN 原文:https://blog.csdn.net/iamsamzhang/article/details/64129924 版权声明:本文为博主原创文章,转载请附上博文链接!
获取定位结果
在位置监视器接口中获取到定位结果。
第七步、删除位置监视器
效果图:

Screenshot_20190519-171420_TencentLocation.jpg
参考文献