Académique Documents
Professionnel Documents
Culture Documents
Google en nuestra aplicacin. Este paso ya lo comentamos en los artculos sobre la API
v1, pero en este caso el procedimiento ser algo distinto. La nueva API de mapas de
Android, al igual que la mayora de APIs de Google, est integrada en la nueva Consola
de APIs de Google, por lo que el primer paso ser acceder a ella. Una vez hemos
accedido, tendremos que crear un nuevo proyecto mediante el botn CREATE
PROJECT situado en la parte superior izquierda de la pantalla.
Aparecer entonces una ventana que nos solicitar el nombre e ID del proyecto.
Introducimos algn nombre descriptivo y un ID nico y aceptamos pulsando Create.
Una vez creado el proyecto, accederemos a la opcin APIs & Auth del men
izquierdo. Desde esta ventana podemos activar o desactivar cada una de las APIs de
Google que queremos utilizar. En este caso slo activaremos la llamada Google Maps
Android API v2 pulsando sobre el botn ON/OFF situado justo a su derecha.
Una vez activado accederemos a la opcin Registered Apps del men izquierdo
(submen de APIs & Auth) y pulsaremos el botn REGISTER APP para registrar
nuestra aplicacin.
Accediendo a dicha opcin tendremos la posibilidad de obtener nuestra nueva API Key
que nos permita utilizar el servicio de mapas desde nuestra aplicacin particular.
Tendremos que indicar el nombre de la aplicacin, su tipo (Android), el modo de
acceso a la API (en este caso Accessing APIs directly from Android), el paquete java
utilizado en la aplicacin (que en mi caso ser net.sgoliver.android.mapasapi2) y la
huella digital SHA1 del certificado con el que firmamos la aplicacin.
Este ltimo dato introducido requiere alguna explicacin. Toda aplicacin Android debe
ir firmada para poder ejecutarse en un dispositivo, tanto fsico como emulado. Este
proceso de firma es uno de los pasos que tenemos que hacer siempre antes de distribuir
pblicamente una aplicacin. Adicionalmentes, durante el desarrollo de la misma, para
realizar las pruebas y la depuracin del cdigo, aunque no seamos conscientes de ello
tambin estamos firmado la aplicacin con un certificado de pruebas.
En las ltimas versiones de Eclipse y el plugin ADT de Android, podemos consultar
directamente la huella SHA1 de nuestro certificado de pruebas accediendo al men
Window /Preferences y entrando a la seccin Android / Build.
En caso de disponer de una versin ms antigua que no muestre directamente este dato,
lo que al menos s debe aparecer es la ruta del certificado de pruebas (campo Default
debug keystore). Como se puede observar, en mi caso el certificado de pruebas est en
la ruta C:\Users\Salvador\.android\debug.keystore. Pues bien, si tuviramos que
obtener manualmente nuestra huella digital SHA1 deberemos acceder a dicha ruta desde
la consola de comando de Windows y ejecutar los siguientes comandos:
C:\>cd C:\Users\Salvador\.android\
1
2C:\Users\Salvador\.android>"C:\Program
Files\Java\jdk1.7.0_07\bin\keytool.exe" -list -v -keystore
3debug.keystore -alias androiddebugkey -storepass android -keypass
android
Una vez rellenos todos los datos de la aplicacin, pulsamos el botn Register y ya
deberamos tener nuestra API Key generada, podremos verla en la pantalla siguiente
dentro del apartado Android Key. Apuntaremos este dato para utilizarlo ms tarde.
Con esto ya habramos concluido los preparativos iniciales necesarios para utilizar el
servicio de mapas de Android en nuestras propias aplicaciones, por lo que empecemos a
crear un proyecto de ejemplo en Eclipse.
Abriremos Eclipse y crearemos un nuevo proyecto estandar de Android, en mi caso lo
he llamado android-mapas-api2. Recordemos utilizar para el proyecto el mismo
paquete java que hemos indicado durante la obtencin de la API key.
Tras esto lo primero que haremos ser aadir al fichero AndroidManifest.xml la API
Key que acabamos de generar. Para ello aadiremos al fichero, dentro de la etiqueta
<application>, un nuevo elemento <meta-data> con los siguientes datos:
1 ...
2 <application>
3 ...
<meta-data android:name="com.google.android.maps.v2.API_KEY"
4
android:value="api_key"/>
5
...
6 </application>
7
Como valor del parmetro android:value tendremos que poner nuestra API Key
recien generada.
Siguiendo con el AndroidManifest, tambin tendremos que incluir una serie de permisos
que nos permitan acceder a internet (INTERNET), conocer el estado de la red
(ACCESS_NETWORK_STATE), acceder al almacenamiento externo del dispositivo para
la cach de mapas (WRITE_EXTERNAL_STORAGE) y hacer uso de los servicios web
de Google (READ_GSERVICES).
1<uses-permission android:name="android.permission.INTERNET"/>
2<uses-permission
android:name="android.permission.ACCESS_NETWORK_STATE"/>
3<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission
4android:name="com.google.android.providers.gsf.permission.READ_GSERVI
CES"/>
Por ltimo, dado que la API v2 de Google Maps Android utiliza OpenGL ES versin 2,
deberemos especificar tambin dicho requisito en nuestro AndroidManifest aadiendo
un nuevo elemento <uses-feature>:
1 <uses-feature android:glEsVersion="0x00020000"
android:required="true"/>
2
El siguiente paso ser referenciar el proyecto de librera de los Google Play Services
desde nuestro proyecto de ejemplo, si no lo hemos hecho ya. Para ello iremos a sus
propiedades pulsando botn derecho / Properties sobre nuestro proyecto y accediendo a
la seccin Android de las preferencias. En dicha ventana podemos aadir una nueva
librera en la seccin inferior llamada Library. Cuando pulsamos el botn Add nos
aparecer la librera recien importada y podremos seleccionarla directamente,
aadindose a nuestra lista de libreras referenciadas por nuestro proyecto.
Las versiones ms recientes de ADT incluyen por defecto esta librera en nuestros
proyectos, pero si no est incluida podis hacerlo mediante la opcin del men
contextual Android Tools / Add Support Library sobre el proyecto, o bien de forma
manual.
Y con esto hemos terminado de configurar todo lo necesario. Ya podemos escribir
nuestro cdigo. Y para este primer artculo sobre el tema nos vamos a limitar a mostrar
un mapa en la pantalla principal de la aplicacin. En artculos posteriores veremos como
aadir otras opciones o elementos al mapa.
Para esto tendremos simplemente que aadir el control correspondiente al layout de
nuestra actividad principal. En el caso de la nueva API v2 este control se aadir en
forma de fragment (de ah que hayamos tenido que incluir la librera android-support
para poder utilizarlos en versiones de Android anteriores a la 3.0) de un determinado
tipo (concretamente de la nueva
clase com.google.android.gms.maps.SupportMapFragment), quedando
por ejemplo de la siguiente forma:
1<?xml version="1.0" encoding="utf-8"?>
2<fragment xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/map"
3
android:layout_width="match_parent"
4
android:layout_height="match_parent"
5
class="com.google.android.gms.maps.SupportMapFragment"/>
6
Por supuesto, dado que estamos utilizando fragments, la actividad principal tambin
tendr que extender a FragmentActivity (en vez de simplemente Activity
como es lo normal). Usaremos tambin la versin de FragmentActivity incluida
en la librera android-support para ser compatibles con la mayora de las
versiones Android actuales.
1 public class MainActivity extends
2 android.support.v4.app.FragmentActivity {
3
4
5
6
7
8
9
...
1 }
0
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
Con esto, ya podramos ejecutar y probar nuestra aplicacin. En mi caso las pruebas las
he realizado sobre un dispositivo fsico con Android 2.2 ya que por el momento parece
haber algunos problemas para hacerlo sobre el emulador. Por tanto tendris que conectar
vuestro dispositivo al PC mediante el cable de datos e indicar a Eclipse que lo utilice
para la ejecucin de la aplicacin.
Si ejecutamos el ejemplo deberamos ver un mapa en la pantalla principal de la
aplicacin, sobre el que nos podremos mover y hacer zoom con los gestos habituales o
utilizando los controles de zoom incluidos por defecto sobre el mapa.
Con