获取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设计时必须充分考虑获取用户权限的方式,合理引导用户授予权限。
这篇文章对您解决问题是否有帮助?
已解决
未解决