Integración del SDK de Mapas de Tencent en un Proyecto Nativo de Android

Guía de instalación

https://www.cnblogs.com/R-bear/p/18076117Primeros pasos con el proyecto

Importante:

Es esencial agregar correctamente un dispositivo de ejecución y descargar el entorno de ejecución del dispositivo Debe esperar a que se complete el proceso de importación antes de ejecutar el proyecto En casos de lentitud, puede configurar repositorios espejo

maven { url 'https://maven.aliyun.com/repository/google' }<br></br>maven { url 'https://maven.aliyun.com/repository/jcenter' }<br></br><br></br><br></br>Si la descarga de Gradle es lenta, utilice repositorios espejo

Sitio oficial: https://services.gradle.org/distributions/

Repositorio espejo de Tencent Cloud para Gradle: https://mirrors.cloud.tencent.com/gradle/

Repositorio espejo de Aliyun para Gradle: https://mirrors.aliyun.com/macports/distfiles/gradle/

Repositorio espejo de Aliyun para Gradle: https://mirrors.aliyun.com/gradle/

#Thu Dec 27 14:03:13 CST 2018
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
#distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-all.zip
distributionUrl=https://mirrors.aliyun.com/gradle/gradle-4.10.1-all.zip

<br></br><br></br><br></br>Configuración de requisitos de versión<br></br>versión de gradle 1.8<br></br>


<br></br><br></br>

# Agregue aquí reglas específicas de ProGuard para su proyecto.
# Puede controlar el conjunto de archivos de configuración aplicados usando
# la configuración proguardFiles en build.gradle.
#
# Para más detalles, consulte
#   http://developer.android.com/guide/developing/tools/proguard.html

# Si su proyecto usa WebView con JS, descomente la siguiente
# línea y especifique el nombre de clase calificado completo para la clase de interfaz de JavaScript:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#   public *;
#}

# Descomente esto para preservar la información de número de línea para
# depuración de trazas de pila.
#-keepattributes SourceFile,LineNumberTable

# Si mantiene la información de número de línea, descomente esto para
# ocultar el nombre del archivo fuente original.
#-renamesourcefileattribute SourceFile

# Biblioteca principal de navegación
-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.**{*;}

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

-keep class com.tencent.beacontmap.** { *; }

proguard-rules.pro```



plugins { id 'com.android.application' } android { compileSdkVersion 34

defaultConfig {
    applicationId "com.example.micromapa"
    minSdk 24
    targetSdkVersion 34
    versionCode 1
    versionName "1.0"

    testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}

buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
    }
}
compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}

}

dependencies {

// implementation libs.appcompat // implementation libs.material // implementation libs.activity // implementation libs.constraintlayout // testImplementation libs.junit // androidTestImplementation libs.ext.junit // androidTestImplementation libs.espresso.core implementation fileTree(enclude: ['*.jar'], dir: 'libs') implementation 'androidx.recyclerview:recyclerview:1.1.0' implementation 'androidx.appcompat:appcompat:1.1.0' implementation 'androidx.constraintlayout:constraintlayout:1.1.3'

// Biblioteca principal de navegación
implementation "com.tencent.map:tencent-map-nav-sdk-core:6.12.1"
// Dependencias base
implementation "com.tencent.openmap:foundation:0.5.5.2da11df-lite"
// TTS integrado en navegación, opcional
implementation "com.tencent.map:tencent-map-nav-sdk-tts:6.12.1"

}


build.gradle```
// Archivo de compilación de nivel superior donde puede agregar opciones de configuración comunes a todos los sub-proyectos/módulos.

buildscript {

    repositories {
        google()
        mavenCentral()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:4.1.3'
    }

}

allprojects {
    repositories {
        maven { url 'https://maven.aliyun.com/repository/google' }
        maven { url 'https://maven.aliyun.com/repository/jcenter' }

        maven {
            url "https://mirrors.tencent.com/repository/maven/tencent_public/"
        }
        maven {
            url "https://mirrors.tencent.com/repository/maven/tencent_public_snapshots"
        }
        google()
//        jcenter()
        mavenCentral()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

build.gradle``` package com.example.micromapa; import androidx.appcompat.app.AppCompatActivity;

import android.os.Build; import android.os.Bundle;

import com.example.micromapa.R;

import com.tencent.map.geolocation.TencentLocationManager; import com.tencent.navix.api.NavigatorConfig; import com.tencent.navix.api.NavigatorZygote; import com.tencent.tencentmap.mapsdk.maps.CameraUpdateFactory; import com.tencent.tencentmap.mapsdk.maps.MapView; import com.tencent.tencentmap.mapsdk.maps.TencentMap; import com.tencent.tencentmap.mapsdk.maps.TencentMapInitializer; import com.tencent.tencentmap.mapsdk.maps.TextureMapView; import com.tencent.tencentmap.mapsdk.maps.model.LatLng;

public class InicioMapaActivity extends AppCompatActivity {

private TextureMapView vistaMapa;
private TencentMap mapaTencent;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    //Inicialización
    TencentMapInitializer.setAgreePrivacy(this.getApplicationContext(), true);
    TencentMapInitializer.start(this.getApplicationContext());
    NavigatorZygote.with(getApplicationContext()).init(
            NavigatorConfig.builder()
                    .setUserAgreedPrivacy(true)     // Configurar acuerdo de privacidad
                    .setDeviceId("dispositivo_personalizado")    // Configurar ID de dispositivo personalizado para resolución de problemas (solo se considera la primera configuración)
                    .setDeviceModel(Build.MODEL)        // Configurar modelo de dispositivo para ayudar en la resolución de problemas
                    .setDeveloperKey("")   // Configurar clave de desarrollador
                    .build()
    );

// Nota: a partir de la versión 6.11.0, se necesita el acuerdo de privacidad para iniciar la navegación NavigatorZygote.with(getApplicationContext()).start(); // Inicializar vista del mapa vistaMapa = findViewById(R.id.mapview); mapaTencent = vistaMapa.getMap();

    // Configurar vista de mapa predeterminada
    configurarVistaPredeterminada();
}

private void configurarVistaPredeterminada() {
    // Configurar centro del mapa en Beijing con nivel de zoom 12
    LatLng ubicacionPredeterminada = new LatLng(39.9042, 116.4074);
    mapaTencent.moveCamera(CameraUpdateFactory.newLatLngZoom(ubicacionPredeterminada, 12));

// Habilitar controles de zoom mapaTencent.getUiSettings().setZoomControlsEnabled(true);

// Deshabilitar todos los gestos (opcional) // mapaTencent.getUiSettings().setAllGesturesEnabled(false); }

// ========== Gestión del ciclo de vida del mapa ==========
@Override
protected void onResume() {
    super.onResume();
    vistaMapa.onResume();
}

@Override
protected void onPause() {
    super.onPause();
    vistaMapa.onPause();
}

@Override
protected void onDestroy() {
    super.onDestroy();
    vistaMapa.onDestroy();
}

// @Override // protected void onSaveInstanceState(@NonNull Bundle outState) { // super.onSaveInstanceState(outState); // vistaMapa.onSaveInstanceState(outState); // } //

// @Override // public void onLowMemory() { // super.onLowMemory(); // vistaMapa.onLowMemory(); // } }


InicioMapaActivity```
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.example.micromapa">

<!--    &lt;!&ndash; Obtener ubicación precisa mediante GPS &ndash;&gt;-->
<!--    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>-->
<!--    &lt;!&ndash; Obtener ubicación aproximada mediante red &ndash;&gt;-->
<!--    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>-->
<!--    &lt;!&ndash; Acceso a red, cierta información de ubicación necesita obtenerse de servidores de red &ndash;&gt;-->
<!--    <uses-permission android:name="android.permission.INTERNET"/>-->
<!--    &lt;!&ndash; Acceso al estado WiFi, se necesita información WiFi para ubicación por red &ndash;&gt;-->
<!--    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>-->
<!--    &lt;!&ndash; Modificar estado WiFi, iniciar escaneo WiFi, se necesita información WiFi para ubicación por red &ndash;&gt;-->
<!--    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>-->
<!--    &lt;!&ndash; Acceso al estado de red, detectar disponibilidad de red, se necesita información del operador de red para ubicación por red &ndash;&gt;-->
<!--    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>-->
<!--    &lt;!&ndash; Acceso a cambios de red, se necesita cierta información para ubicación por red &ndash;&gt;-->
<!--    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>-->
<!--    &lt;!&ndash; Permiso de escaneo Bluetooth &ndash;&gt;-->
<!--    <uses-permission android:name="android.permission.BLUETOOTH"/>-->
<!--    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>-->
<!--    &lt;!&ndash; Permiso de servicio en primer plano &ndash;&gt;-->
<!--    <uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>-->
<!--    &lt;!&ndash; Permiso de ubicación en segundo plano &ndash;&gt;-->
<!--    <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION"/>-->
<!--    &lt;!&ndash; Permiso A-GPS para ubicación asistida, facilita la ubicación GPS rápida y precisa &ndash;&gt;-->
<!--    <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"/>-->

    <!-- Permisos de red básicos -->
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme"
        tools:targetApi="p">

        <meta-data
            android:name="TencentMapSDK"
            android:value=""/>
<!--        <activity-->
<!--            android:name=".MainActivity"-->
<!--            android:exported="true">-->
<!--            <intent-filter>-->
<!--                <action android:name="android.intent.action.MAIN" />-->

<!--                <category android:name="android.intent.category.LAUNCHER" />-->
<!--            </intent-filter>-->
<!--        </activity>-->

        <activity android:name=".InicioMapaActivity"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

AndroidManifest.xml``` #Tue Apr 29 11:58:11 CST 2025 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists distributionUrl=htps://services.gradle.org/distributions/gradle-6.9.4-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists


gradle-wrapper.properties

Etiquetas: android-sdk tencent-maps Gradle java-android map-integration

Publicado el 7-9 08:49