腾讯定位服务使用教程Android版

开发环境:
android studio

一:准备环境

1.首先你得有一个腾讯开发账号
传送门:https://lbs.qq.com/
进去之后注册。
2.获取APPKey:
在这里插入图片描述
3.在AndroidManifest.xml文件下配置APPKey:

<application>
    ...
    <meta-data android:name="TencentMapSDK" android:value="您申请的Key" />
</application>

4.导入AndroidStudio
其实是有两种方式,一种是直接导入jar包,第二种是添加依赖。因为第二种方便很多,所以就选择第二种了。从这一步看来,腾讯定位比百度确实香很多。他瞄的上学期一直是用的百度。
1.修改build.gradle中的配置
在这里插入图片描述
增加配置如下:

llprojects {
    
    
    repositories {
    
    
        jcenter()
        google()
        mavenCentral()
    }
}

2.在第二个build.gradle文件中的dependencies中增加依赖

implementation 'com.tencent.map.geolocation:TencentLocationSdk-openplatform:7.2.6'

5.在AndroidManifest.xml文件中添加权限:

<!-- 通过GPS得到精确位置 -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<!-- 通过网络得到粗略位置 -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<!-- 访问网络. 某些位置信息需要从网络服务器获取 -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- 访问WiFi状态. 需要WiFi信息用于网络定位 -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<!-- 修改WiFi状态. 发起WiFi扫描, 需要WiFi信息用于网络定位 -->
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<!-- 访问网络状态, 检测网络的可用性. 需要网络运营商相关信息用于网络定位 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- 访问网络的变化, 需要某些信息用于网络定位 -->
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<!-- 访问手机当前状态, 需要device id用于网络定位 -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<!-- 支持A-GPS辅助定位 -->
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<!-- 用于 log 日志 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

前面的准备工作做好了然后开始代码部分

二:编码部分

1.获取TencentLocationManager实例

TencentLocationManager  mLocationManager = TencentLocationManager.getInstance(this);

2.创建位置监听器

public class MyActivity extends Activity implements TencentLocationListener {
    
    
    ...
  
    @Override
    public void onLocationChanged(TencentLocation location, int error, String reason) {
    
    
        // 用于接收定位结果
    }
  
    @Override
    public void onStatusUpdate(String name, int status, String desc) {
    
    
        //用于接收GPS、WiFi、Cell状态码,
    }          
}

3.构造TencentLocationRequest

TencentLocationRequest request = TencentLocationRequest.create()
//1.用户可以自定义定位间隔,事件单位为毫秒,不得小于1000毫秒
        request.setInterval(1000);
        //2.设置请求级别
        request.setRequestLevel(TencentLocationRequest.REQUEST_LEVEL_NAME);
        //3.是否允许使用GPS(建议用户开启,在室外场景可以显著提升定位精度);
        request.setAllowGPS(true);
        //4.是否需要获取传感器方向
        request. setAllowDirection(true);
        //5.是否需要开启室内定位
        request.setIndoorLocationMode(true);
       
       

里面的请求级别可以自定义,参照表如下:
在这里插入图片描述
4.发起联系定位请求(开始定位)

 mLocationManager.requestLocationUpdates(request,this);

5.停止定位


       // mLocationManager.removeUpdates(this);

6.定位结果:
在这里插入图片描述

三:百度和腾讯的对比

个人感觉腾讯的sdk比百度使用起来要简单方便很多,百度的工程包名还必须要和本地的一致,而腾讯位置服务就没有这种限制,甚至还可以起中文名。sdk腾讯只需要导入依赖即可。功能方面的话还需要进一步测试。

猜你喜欢

转载自blog.csdn.net/qq_44867340/article/details/112445684