Primeros pasos con el plan premium en Android

Tu licencia del Google Maps APIs Premium Plan ofrece una mayor compatibilidad con la Google Maps Android API. En este documento, podrás obtener información sobre cómo crear una app de Android que use la Google Maps Android API con el Premium Plan.

Información general

Sigue las instrucciones de esta página para descargar el SDK, configurar tu proyecto y agregar un mapa. A continuación, se ofrece un resumen de los pasos que deben seguirse:

  1. Descargar el SDK.
  2. Agregar el SDK a un proyecto de Android nuevo o existente.
  3. Agregar tu clave de API al manifiesto de la app.
  4. Especificar los permisos de Android necesarios y la versión 2 de OpenGL ES.
  5. Agregar un mapa.

Descargar el SDK

Puedes descargar el SDK como una biblioteca estática o usar Android SDK Manager.

Opción 1: Descargar el SDK como biblioteca estática

Descarga la versión más actualizada como biblioteca estática.

Opción 2: Descargar el SDK usando Android SDK Manager

En Android Studio:

  1. Selecciona Tools > Android > SDK Manager.
  2. Selecciona Appearance & Behavior > System Settings > Android SDK.
  3. Haz clic en la pestaña SDK Update Sites.
  4. Haz clic en el ícono más (+) para agregar un sitio nuevo.
  5. Ingresa un nombre (por ejemplo, “Google Maps for Work”) y la URL: https://dl.google.com/geosdk/android-m4b-addon.xml
  6. Haz clic en OK.
  7. Haz clic en la pestaña SDK Tools.
  8. Selecciona Google Maps Mobile SDK for Work y haz clic en OK para completar la descarga.

Android Studio instala la biblioteca en <android-sdk-folder>/extras/google/maps_for_business_sdk/.

Consulta la guía de Android SDK Manager para hallar instrucciones sobre cómo usarlo como una herramienta independiente.

Agregar el SDK a tu proyecto

A continuación, puedes encontrar las instrucciones para Android Studio. Si usas una herramienta diferente, consulta las instrucciones de uso de la línea de comandos en la documentación de Android.

La Google Maps Android API para el Premium Plan se encuentra disponible en dos formatos: un paquete aar (google-maps-sdk-m4b.aar) y un módulo de biblioteca (google-maps-sdk-m4b_lib). Puedes elegir el formato que se adecue mejor a tus necesidades.

Opción 1: Importar el SDK desde el paquete aar

Sigue estos pasos para incluir el aar incorporado (google-maps-sdk-m4b.aar) en tu proyecto de Android Studio:

  1. Dirígete hasta Google Maps APIs Premium Plan en esta ubicación:

    <android-sdk>/extras/google/maps_for_business_sdk

  2. Copia el archivo google-maps-sdk-m4b.aar al directorio libs de tu proyecto. (Crea el directorio si no existe.)

  3. Agrega el siguiente código a tu archivo build.gradle:

    dependencies {
        compile(name:'google-maps-sdk-m4b', ext:'aar')
    
    }
    
    repositories {
        flatDir{
            dirs 'libs'
        }
    }
    
  4. Completa los pasos de configuración descritos a continuación.

Opción 2: Importar el SDK como módulo de biblioteca

En lugar de usar el archivo aar, puedes seguir estos pasos para agregar el módulo de biblioteca de SDK (google-maps-sdk-m4b_lib) a un proyecto existente de Android Studio:

  1. En Android Studio, elige la opción para importar un módulo nuevo (File -> New -> Import Module).
  2. Dirígete hasta el SDK en esta ubicación:

    <android-sdk>/extras/google/maps_for_business_sdk

  3. Selecciona el directorio google-maps-sdk-m4b_lib y haz clic en Choose.

  4. Acepta los valores predeterminados en el asistente de importación.
  5. Haz clic en Finish. Verás un archivo de texto en el que se resumirán los resultados del proceso de importación.
  6. Asegúrate de que la biblioteca se incluya en el archivo settings.gradle:

    include ':googlemapssdkm4b_lib'

  7. Agrega una dependencia de módulo en el archivo build.gradle de tu app:

    compile project(':googlemapssdkm4b_lib')

Convertir cualquier configuración existente en la que se use Google Play Services

1 Si tienes una app que usa Google Play Services, reemplaza todas las referencias al paquete de com.google.android.gms.maps por com.google.android.m4b.maps. 1. Asigna el prefijo m4b_ a todas las referencias a los atributos de diseño de XML. Por ejemplo: m4b_mapType y m4b_cameraZoom.

Especificar la configuración en el manifiesto de la app

Para una app de Android que use la Google Maps Android API, debe especificarse la siguiente configuración en el archivo de manifiesto AndroidManifest.xml:

Clave de API

Genera una clave de API para tu proyecto y agrégala a AndroidManifest.xml, como se describe en la guía de autenticación.

Permisos

Especifica los permisos que necesita tu aplicación agregando elementos de <uses-permission> como hijos del elemento <manifest> en AndroidManifest.xml.

Permisos de ubicación

Si tu aplicación accede a la ubicación actual del usuario habilitando la capa “Mi ubicación”, debes solicitar permisos de ubicación según lo descrito en la guía para los datos de ubicación.

Permiso de almacenamiento externo

Si tu objetivo es la versión 8.3 o posteriores del SDK Google Play Services, ya no necesitarás el permiso de WRITE_EXTERNAL_STORAGE para usar la Google Maps Android API.

Si tu objetivo son las versiones anteriores del SDK de Google Play Services, debes solicitar el permiso de android.permission.WRITE_EXTERNAL_STORAGE permission.

<uses-permission
        android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

Nota: Si tu aplicación está orientada a la API de nivel 23 (Android 6.0), para el cual es necesario usar los permisos de tiempo de ejecución, debes apuntar a la versión 8.3, o a una posterior, del SDK de Google Play Services.

Permisos que se combinan automáticamente en tu manifiesto

Los permisos siguientes se definen en el manifiesto de Google Play Services y se combinan automáticamente en el manifiesto de tu aplicación, al momento de compilación. No es necesario que los agregues de manera explícita a tu manifiesto:

Versión 2 de OpenGL ES

La Google Maps Android API usa OpenGL ES 2 para representar el mapa. La siguiente configuración se define en el manifiesto de Google Play Services y se combina automáticamente con el manifiesto de tu app en el momento de la compilación. No es necesario que la agregues de manera explícita a tu manifiesto:

<uses-feature
        android:glEsVersion="0x00020000"
        android:required="true"/>

Esto notifica el requisito a los servicios externos. En particular, evita que Google Play Store muestre tu app en dispositivos que no sean compatibles con OpenGL ES versión 2.

Agregar un mapa

La manera más sencilla de verificar que tu app esté configurada correctamente consiste en agregar un mapa simple.

Nota: Este código no debe usarse en una app de producción.

  1. En activity_main.xml, agrega el siguiente fragmento.

    <?xml version="1.0" encoding="utf-8"?>
    <fragment xmlns:android="http://schemas.android.com/apk/res/android"
              android:id="@+id/map"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:name="com.google.android.m4b.maps.MapFragment"/>
    
  2. En MainActivity.java, agrega el siguiente código.

    package com.example.mapdemo;
    
    import android.app.Activity;
    import android.os.Bundle;
    
    public class MainActivity extends Activity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
        }
    }
    

Compilar y ejecutar tu app

Compila y ejecuta tu app. Visualizarás un mapa.

Solución de problemas:

  • Si no ves un mapa, asegúrate de haber completado todos los pasos que aparecen anteriormente en este documento. En especial, asegúrate de que tu clave de API sea correcta y tu cuenta esté habilitada para el servicio del Google Maps APIs Premium Plan.

  • Si el número de métodos de tu proyecto excede el límite, es posible que veas un mensaje de error:

    “Unable to execute dex: method ID not in [0, 0xffff]: 65536”.

    Si deseas obtener información sobre causas y soluciones, consulta la guía de desarrolladores de Android para crear apps con métodos de más de 65K.

  • Si tu proyecto ya depende de Guava, es posible que recibas mensajes de error de conflicto de clases como el siguiente:

    “com.android.dex.DexException: Multiple dex files define Lcom/google/common/annotations/Beta`

    Para resolver este problema, puedes borrar la copia de Guava del directorio google-maps-sdk-m4b_lib/libs.

Más información

Cómo migrar una app existente

La Android API disponible con el Premium Plan fue diseñada para ser muy similar a la Google Maps Android API estándar. Por lo tanto, el proceso de migración es simple.

  1. Descarga la Google Maps Android API para el Premium Plan y agrega el SDK a tu proyecto como se describe anteriormente.
  2. Reemplaza todas las referencias al paquete de com.google.android.gms.maps por com.google.android.m4b.maps.
  3. Asigna el prefijo m4b_ a todas las referencias a los atributos de diseño de XML. Por ejemplo: m4b_mapType y m4b_cameraZoom.
  4. Genera una clave de API nueva para tu proyecto y agrégala a AndroidManifest.xml, como se describe en la guía de autenticación.
  5. Compila tu app.

Comparación de versiones

En la siguiente tabla, se describen las diferencias claves entre el uso de la Google Maps Android API estándar y el uso de la API con el Premium Plan.

  Google Maps Android API estándar Premium Plan
Nombre del paquete com.google.android.gms.maps com.google.android.m4b.maps
Atributos XML del archivo de diseño Usa el nombre de atributo sin prefijo. Por ejemplo: mapType. Asigna el prefijo m4b_ a todos los nombres de atributos. Por ejemplo: m4b_mapType. Para obtener información detallada, consulta la documentación sobre atributos XML.
Ubicación de descarga Se incluye con Google Play Services. Disponible como biblioteca estática.
Canales de asistencia Asistencia de la comunidad Acceso a asistencia premium
Condiciones Sujeto a las Google Maps APIs Condiciones de servicio. Sujeto a las condiciones del Google Maps APIs Premium Plan .

Google Play Services

Para la Google Maps Android API estándar , se necesitan el APK y la biblioteca de cliente de Google Play Services. Cuando se usa con el Google Maps APIs Premium Plan, sin embargo, para el SDK solo se debe instalar el Google Play Services APK en el dispositivo de destino. La biblioteca de cliente no es necesaria.

Al migrar tu aplicación al Premium Plan, no es necesario que quites el Google Play Services SDK de tu proyecto. Sin embargo, debes quitar cualquier referencia al paquete com.google.android.gms.maps. Google Play Services contiene una versión de la Google Maps Android API y otros servicios de Google. Si usas Google Play Services en tu app para emplear otras Google API, asegúrate de aplicar solo el Premium Plan SDK (el paquete com.google.android.m4b.maps) para acceder a Maps.

Aunque la biblioteca de cliente de Google Play Services no es necesaria, tal vez te resulte útil incluirla para aprovechar otras Google API, como Google+ o la Location API.

Ejemplo de código

En el repositorio de Google Maps de GitHub se incluyen varios ejemplos que ilustran el uso de la Google Maps Android API en tu app de Android. Ten en cuenta que en los ejemplos de apps se usa el paquete com.google.android.gms.maps, no el com.google.android.m4b.maps que se emplea con el Premium Plan. Para los ejemplos de apps también se necesita el Google Play Services SDK, ya que usan las Location API para partes de la demostración.

A su vez, puedes encontrar fragmentos de código en cada página de la guía del desarrollador.

Documentación

La principal fuente de información sobre el Google Maps APIs Premium Plan es la documentación de referencia y del desarrollador disponible en otras partes de nuestro sitio.