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