推荐使用 AndroidStudio 作为开发工具。这里我们提供了腾讯导航 SDK 在 AndroidStudio 中的工程配置方法。

创建AndroidStudio项目

在AndroidStudio中创建一个空的Android项目。

在项目中集成SDK

在工程 build.gradle 文件中,添加 maven 地址:

maven{
    url "https://oss.sonatype.org/content/groups/public/"
}
maven{
    url "https://oss.sonatype.org/content/repositories/snapshots/"
}

在项目 build.gradle 文件中添加导航sdk 依赖:(参考最新版本)

//module 依赖
dependencies {
    // 导航核心库
    implementation "com.tencent.map:tencent-map-nav-sdk-core:${sdk_version}"
    // 基础依赖
    implementation "com.tencent.openmap:foundation:${sdk_version}"
    // 导航内置TTS,可选
    implementation "com.tencent.map:tencent-map-nav-sdk-tts:${sdk_version}"
}

在 AndroidManifest.xml 配置key

开发者申请 key 后,把 Key 输入工程的 AndroidManifest.xml 文件中,在 application 标签里,添加名称为 TencentMapSDK 的 meta,如下所示( value 值为申请的 key ):

<application
    <meta-data
        android:name="TencentMapSDK"
        android:value="*****-*****-*****-*****-*****-*****"/>
</application>

在AndroidManifest.xml中添加权限配置

导航SDK需要使用网络等系统权限,在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"/>
<!-- 蓝牙扫描权限 -->
<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"/>

在proguard-rules.pro中添加混淆配置

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

# 导航核心库
-keep class com.tencent.navix.**{*;}
-keep class com.tencent.gaya.**{*;}
-keep class com.tencent.map.**{*;}
-keep class com.tencent.mapsdk.**{*;}
-keep class com.tencent.tencentmap.**{*;}
-keep class com.tencent.bugly.**{*;}
-keep class com.tencent.feedback.**{*;}
-keep class com.tencent.tmsbeacon.**{*;}
-keep class com.tencent.tmsqmsp.**{*;}
-keep class com.tencent.lbssearch.**{*;}
-keep class com.tencent.moduleSDK.**{*;}
-keep class com.tencent.pangu.**{*;}
-keep class com.qq.taf.**{*;}
-keep class com.qq.jce.**{*;}
-keep class c.t.**{*;}

# TTS库
-keep class com.tencent.ai.**{*;}
-keep class com.tencent.btts.**{*;}
-keep class kael.tools.log.**{*;}
-keep class qrom.component.log.**{*;}

在启动APP时调用如下代码

NavigatorZygote.with(context.getApplicationContext()).init(
    NavigatorConfig.builder()
        .setUserAgreedPrivacy(true)     // 设置同意隐私协议
        .setDeviceId("custom_device_id")    // 设置自定义的设备ID,用于问题排查
        .setDeviceModel(Build.MODEL)        // 设置设备型号,帮助问题排查
        .setDeveloperKey("developer_key")   // 设置开发者KEY
    .build()
);

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

已解决
未解决