获取AppKey

1.进入控制台进行选择我的应用并创建应用


2.填写应用信息并勾选使用条款:


3.如果只需要使用定位功能,不需要对AppKey做额外设置。



配置AppKey

<application>
    ...
    <meta-data android:name="TencentMapSDK" android:value="您申请的Key" />
</application>
//代码中动态配置appkey
TencentLocationManagerOptions.setKey("您申请的Key")

Eclipse配置工程

下载定位SDK压缩包后,将其中的jar包和so放到工程libs目录下。so可以依据App目标兼容的CPU架构自行添加。


Android Studio配置工程

Android Studio的配置方式有两种:

方法1:主动添加SDK

a)将jar放在libs目录下,配置gradle

在 build.gradle 文件的 dependencies 中配置

compile fileTree(include: [’*.jar’], dir: ‘libs’)


b)将so放在jniLibs目录下


方法2:Gradle配置引用

a)修改根目录gradle配置

增加配置如下:

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

b)修改工程目录gradle配置

在 build.gradle 文件的 dependencies 中增加配置

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

建议用户使用这种方式接入SDK。这里的7.2.6代表SDK版本号,引入高版本SDK可以通过提高版本号实现。版本更新可以通过查看更新日志检查是否有新版本。


代码混淆

如果需要混淆您的工程,请在module里找到proguard-rules.pro文件,添加如下混淆脚本:

-keepattributes *Annotation*
-keepclassmembers class ** {
    public void on*Event(...);
}
-keep public class com.tencent.location.**{
    public protected *;
}
-keepclasseswithmembernames class * {
    native <methods>;
}
-keep class c.t.**{*;}
-keep class com.tencent.map.geolocation.**{*;}
-keep class com.tencent.tencentmap.lbssdk.service.*{*;}
-dontwarn  org.eclipse.jdt.annotation.**
-dontwarn  c.t.**
-dontwarn  android.location.Location
-dontwarn  android.net.wifi.WifiManager
-dontnote ct.**

权限配置

请在manifest文件下配置如下权限:

<!-- 通过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"/>
<!-- 蓝牙扫描权限 -->
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
<!-- 前台service权限 -->
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
<!-- 后台定位权限 -->
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION"/>
<!-- A-GPS辅助定位权限,方便GPS快速准确定位 -->
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"/>

随着Android版本的升级,权限使用方面也有变动,具体可参考实用文档中针对Android各个版本的适配文档。

定位服务是一个重度依赖用户授权的功能,因此在App设计时必须充分考虑获取用户权限的方式,合理引导用户授予权限。

这篇文章对您解决问题是否有帮助?

已解决
未解决