Noticia Desarrollando en Android #2 Google Maps API

tumblr_inline_mu785g9kN11qfbwj9.jpg

En la aplicación vamos a usar los mapas de Google y por tanto, la API de Google Maps. Por experiencia previa, ya sabía que no era tan sencillo configurarlo todo para que funcione, así que este es el primer paso.

General


Los pasos que vamos a seguir para que todo funcione correctamente son:

  • Descargar y configurar los Google Play Services
  • Obtener una API key
  • Definir las especificaciones en el Application Manifest
  • Añadir un mapa a la aplicación.

¡Vamos a ello!

Descargar y configurar los Google Play Services


Este paso es bastante sencillo. Una vez nos hemos bajado todo el SDK de Android, lanzaremos el SDK Manager para descargarnos por un lado una versión del SDK igual o superior a Android 4.2.2 y por el otro lado, el paquete extra de Google Play Services.

tumblr_inline_mu78d8bYLV1qfbwj9.jpg

Esto es debido a que ahora la API está distribuida como parte de los Google Play Services, y por tanto, necesitamos instalarlos. Una vez lo hayamos descargado, podremos encontrarlo en la carpeta <android-sdk>/extras/google/google_play_services/. El siguiente paso es importar esta carpeta como una librería.

Para ello, basta con abrir el Eclipse y pulsar File -> Import -> Android -> Existing Android Code into Workspace y buscar la carpeta mencionada justo arriba.

tumblr_inline_mu78mxBv771qfbwj9.jpg

Una vez importada la librería, hemos de referenciarla a nuestro proyecto. Para ello, pulsamos con el botón derecho en nuestro proyecto -> Properties -> Android y en el apartado Library añadimos nuestra librería.

tumblr_inline_mu78r1UZoU1qfbwj9.jpg

De esta manera ya tenemos configurados e instalados los Google Play Services y podemos pasar al siguiente punto.

Conseguir la API key de Google Maps


Para acceder a los servidores de Google Maps con la API de Google Maps tenemos que añadir una API key a nuestra aplicación. Esta llave estará asociada exclusivamente a nuestra app gracias a los certificados que usa Android y funcionará o no en función de ello. Así pues, necesitaremos ante todo la huella SHA-1 de nuestra aplicación para poder solicitar la API key. Pero vayamos por partes.

Obteniendo la huella SHA-1 de nuestra aplciación


Fue un verdadero quebradero, pero gracias a la ayuda de kix2902 descubrí que toda la información se encuentra en el Eclipse -> Window -> Preferences -> Android -> Build

tumblr_inline_mu8pvz0t9M1qfbwj9.jpg

Creando un proyecto API


Una vez tenemos ya nuestra huella SHA-1, podemos pasar al siguiente paso:

  • Abrimos la consola de Google APIs
  • Creamos un nuevo proyecto con el nombre que queramos
  • Vamos a continuación al apartado de Services y activamos Google Maps Android API v2

tumblr_inline_mu8q64Uh1j1qfbwj9.jpg

  • Ahora vamos al apartado API Access -> Create New Android Key
  • Introducimos aquí la huella SHA-1 seguidos del nombre del paquete. En mi caso:
    2C:C5:E6:A4:EE:29:EB:0D:8F:F3:B2:60:18:DF:3B:A7:D5:D4:95:7B;com.example.pfc_alpha1
  • Acabamos de generar la API key y ya la tendremos a nuestra disposición

tumblr_inline_mu8qcprhfM1qfbwj9.jpg

Añadiendo la API Key a nuestra aplicación


Ahora que ya tenemos la API Key, tenemos que añadirla a nuestra aplicación para que todo funcione.

1. En el AndroidManifest.xml añadimos el bloque siguiente como un hijo de <application> (justo antes de que acabe </application>)

<meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="API_KEY"/>

donde API_KEY es la API Key.

2. Añadimos los siguientes permisos


Y también está recomendado añadir las siguientes si nuestra aplicación necesita acceder a nuestra posición.


En resumen, hemos de añadir lo siguiente:

<uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/> <!-- The following two permissions are not required to use Google Maps Android API v2, but are recommended. --> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

Google Maps utiliza OpenGL ES v2 para renderizar los mapas. Si no tienes instalado OpenGL ES v2, el mapa no aparecerá y por tanto también es recomendable añadir la siguiente condición:

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

Con esto ya tenemos nuestra aplicación configurada.

tumblr_inline_mu8rwaiyuz1qfbwj9.jpg

Añadiendo el mapa


Y pasamos ya al último punto: añadir el mapa. Una vez que hemos configurado el Google Play Services, hemos añadido la API Key y rellenado el AndroidManifest.xml, toca picar código.

Añadir un mapa es muy sencillo

1. En el main.xml añadimos 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.gms.maps.MapFragment"/>

2. En el MainActivity añadimos esto otro

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.main); } }

3. Y ya está, funciona sin problemas!

tumblr_inline_mu8s6zsLgK1qfbwj9.png

Los próximos pasos van a ser poder añadir puntos en el mapa y posiciones determinadas. Esperemos que no sea muy difícil!

Links de interés


Os recuerdo que el código fuente del proyecto se encuentra en Github

¡Cualquier duda, sugerencia o cuestión me podéis encontrar en twitter!

El artículo Desarrollando en Android #2 Google Maps API se publicó en El Androide Libre (El Blog Android de referencia. Aplicaciones, noticias, Juegos y smartphones Android Libres)

mf.gif








a2t.img


nfBm6-DZEJs


Continúar leyendo...