Hace tan sólo 3 días, Google presentaba la segunda versión de su API de Google Maps para Android. Esta nueva versión presenta muchas novedades interesantes, de las que cabe destacar las siguientes:
- Integración con los Servicios de Google Play (Google Play Services) y la Consola de APIs.
- Utilización a través de un nuevo tipo específico de fragment (MapFragment), una mejora muy esperada por muchos.
- Utilización de mapas vectoriales, lo que repercute en una mayor velocidad de carga y una mayor eficiencia en cuanto a uso de ancho de banda.
- Mejoras en el sistema de caché, lo que reducirá en gran medida las famosas áreas en blanco que tardan en cargar.
- Los mapas son ahora 3D, es decir, podremos mover nuestro punto de vista de forma que lo veamos en perspectiva.
Al margen de las novedades generales, como desarrolladores ¿qué diferencias nos vamos a encontrar con respecto a la API anterior a la hora de desarrollar nuestras aplicaciones Android?
Pues la principal será el componente que utilizaremos para la inclusión de mapas en nuestra aplicación. Si recordamos la anterior versión de la API, para incluir un mapa en la aplicación debíamos utilizar un control de tipo MapView, que además requería que su actividad contenedora fuera del tipo MapActivity. Con la nueva API nos olvidaremos de estos dos componentes y pasaremos a tener sólo uno, un nuevo tipo específico de fragment llamado MapFragment. Esto nos permitirá entre otras cosas añadir uno [o varios, esto también es una novedad] mapas a cualquier actividad, sea del tipo que sea, y contando por supuesto con todas las ventajas del uso de fragments. Nota importante: dado que el nuevo control de mapas se basa en fragments, si queremos mantener la compatibilidad con versiones de Android anteriores a la 3.0 tendremos que utilizar la librería de soporte android-support. Más adelante veremos más detalles sobre esto.
Además de esta novedad, la integración de la API con los Google Play Services y la Consola de APIs de Google, harán que los preparativos del entorno, las librerías utilizadas, y el proceso de obtención de la API Key de Google Maps sean un poco distintos a los que ya vimos en los artículos dedicados la primera versión.
Pues bien, en este nuevo artículo del Curso de Programación Android vamos a describir los pasos necesarios para hacer uso de la nueva versión de la API de mapas de Google (Google Maps Android API v2).
Como en los artículos previos donde aprendimos a utilizar la API v1, en este caso también será necesario realizar algunos preparativos y tareas previas antes de poder empezar a utilizarlos en nuestras aplicaciones.
En primer lugar, dado que la API v2 se proporciona como parte del SDK de Google Play Services, será necesario incorporar previamente a nuestro entorno de desarrollo dicho paquete. Haremos esto accediendo desde Eclipse al Android SDK Manager y descargando del apartado de extras el paquete llamado “Google Play Services”.
Tras pulsar el botón de Install y aceptar la licencia correspondiente el paquete quedará instalado en nuestro sistema, concretamente en la ruta: <carpeta-sdk-android>/extras/google/google_play_services/. Recordemos esto porque nos hará falta más adelante.
El siguiente paso será obtener una API Key para poder utilizar el servicio de mapas de Google en nuestra aplicación. Este paso ya lo comentamos en los artículos sobre la API v1, pero en este caso el procedimiento será algo distinto. La nueva API de mapas de Android se ha integrado por fin en la Consola de APIs de Google (una herramienta de la que ya hablamos por ejemplo en los artículos dedicados a Google Cloud Messaging), por lo que el primer paso será acceder a ella. Una vez hemos accedido, tendremos que crear un nuevo proyecto desplegando el menú superior izquierdo y seleccionando la opción “Create…”.
Aparecerá entonces una ventana que nos solicitará el nombre del proyecto. Introducimos algún nombre descriptivo y aceptamos sin más.
Una vez creado el proyecto, accederemos a la opción “Services” del menú izquierdo. Desde esta ventana podemos activar o desactivar cada uno de los servicios de Google que queremos utilizar. En este caso sólo activaremos el servicio llamado “Google Maps Android API v2″ pulsando sobre el botón ON/OFF situado justo a su derecha.
Una vez activado aparecerá una nueva opción en el menú izquierdo llamada “API Access”. Accediendo a dicha opción tendremos la posibilidad de obtener nuestra nueva API Key que nos permita utilizar el servicio de mapas desde nuestra aplicación particular.
Para ello, pulsaremos el botón “Create new Android key…”. Esto nos llevará a un cuadro de diálogo donde tendremos que introducir algunos datos identificativos de nuestra aplicación. En concreto necesitaremos dos: la huella digital (SHA1) del certificado con el que firmamos la aplicación, y el paquete java utilizado. El segundo no tiene misterio, pero el primero requiere alguna explicación. Toda aplicación Android debe ir firmada para poder ejecutarse en un dispositivo, tanto físico como emulado. Este proceso de firma es uno de los pasos que tenemos que hacer siempre antes de distribuir públicamente una aplicación. Adicionalmentes, durante el desarrollo de la misma, para realizar pruebas y la depuración del código, aunque no seamos conscientes de ello también estamos firmado la aplicación con un “certificado de pruebas”. Podemos saber en qué carpeta de nuestro sistema está almacenado este certificado accediendo desde Eclipse al menú Window /Preferences y accediendo a la sección Android / Build.
Como se puede observar, en mi caso el certificado de pruebas está en la ruta “C:\Users\Salvador\.android\debug.keystore”. Pues bien, para obtener 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\ C:\Users\Salvador\.android>"C:\Program Files\Java\jdk1.7.0_07\bin\keytool.exe" -list -v -keystore debug.keystore -alias androiddebugkey -storepass android -keypass android
Suponiendo que tu instalación de Java está en la ruta “C:\Program Files\Java\jdk1.7.0_07“. Si no es así sólo debes sustituir ésta por la correcta. Esto nos deberá devolver varios datos del certificado, entre ellos la huella SHA1.
Pues bien, nos copiamos este dato y lo añadimos a la ventana de obtención de la API Key donde nos habíamos quedado antes, y a continuación separado por un punto y coma añadimos el paquete java que vayamos a utilizar en nuestra aplicación, que en mi caso será “net.sgoliver.android.mapasapi2″.
Pulsamos el botón “Create” y ya deberíamos tener nuestra API Key generada, podremos verla en la pantalla siguiente dentro del apartado “Key for Android Apps (with certificates)”. Apuntaremos también este dato para utilizarlo más tarde.
Con esto ya habríamos 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 obtención de la API key.
Tras esto lo primero que haremos será añadir al fichero AndroidManifest.xml la API Key que acabamos de generar. Para ello añadiremos al fichero, dentro de la etiqueta <application>, un nuevo elemento <meta-data> con los siguientes datos:
...
<application>
...
<meta-data android:name="com.google.android.maps.v2.API_KEY"
android:value="api_key"/>
...
</application>
Como valor del parámetro android:value tendremos que poner nuestra API Key recien generada.
Siguiendo con el AndroidManifest, también tendremos que incluir una serie de permisos que nos permitan hacer uso de los mapas. En primer lugar tendremos que definir y utilizar un permiso llamado “tu.paquete.java.permission.MAPS_RECEIVE”, en mi caso quedaría de la siguiente forma:
<permission
android:name="net.sgoliver.android.mapasapi2.permission.MAPS_RECEIVE"
android:protectionLevel="signature"/>
<uses-permission android:name="net.sgoliver.android.mapasapi2.permission.MAPS_RECEIVE"/>
Además, tendremos que añadir permisos adicionales que nos permitan acceder a los servicios web de Google, a Internet, y al almacenamiento externo del dispositivo (utilizado para la caché de los mapas):
<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"/>
Por último, dado que la API v2 de Google Maps Android utiliza OpenGL ES versión 2, deberemos especificar también dicho requisito en nuestro AndroidManifest añadiendo un nuevo elemento <uses-feature>:
<uses-feature android:glEsVersion="0x00020000"
android:required="true"/>
Una vez hemos configurado todo lo necesario en el AndroidManifest, y antes de escribir nuestro código, tenemos que seguir añadiendo elementos externos a nuestro proyecto. El primero de ellos será referenciar desde nuestro proyecto la librería con el SDK de Google Play Services que nos descargamos al principio de este tutorial. Para ello, desde Eclipse podemos importar la librería a nuestro conjunto de proyectos mediante la opción de menú “File / Import… / Existing Android Code Into Workspace”. Como ya dijimos este paquete se localiza en la ruta “<carpeta-sdk-android>/extras/google/google_play_services/libproject/google-play-services_lib“.
Tras seleccionar la ruta correcta dejaremos el resto de opciones con sus valores por defecto y pulsaremos Finish para que Eclipse importe esta librería a nuestro conjunto de proyectos.
El siguiente paso será referenciar esta librería desde nuestro proyecto de ejemplo. Para ello iremos a sus propiedades pulsando botón derecho / Properties sobre nuestro proyecto y accediendo a la sección Android de las preferencias. En dicha ventana podemos añadir una nueva librería en la sección inferior llamada Library. Cuando pulsamos el botón “Add…” nos aparecerá la librería recien importada y podremos seleccionarla directamente, añadiéndose a nuestra lista de librerías referenciadas por nuestro proyecto.
Como último paso de configuración de nuestro proyecto, si queremos que nuestra aplicación se pueda ejecutar desde versiones “antiguas” de Android (concretamente desde la versión de Android 2.2) deberemos asegurarnos de que nuestro proyecto incluye la librería android-support-v4.jar, que debería aparecer si desplegamos las sección “Android Dependencies” o la carpeta “lib” de nuestro proyecto.
Las versiones más recientes de ADT incluyen por defecto esta librería en nuestros proyectos, pero si no está incluida podéis hacerlo mediante la opción 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 código. Y para este primer artículo sobre el tema nos vamos a limitar a mostrar un mapa en la pantalla principal de la aplicación. En artículos posteriores veremos como añadir otras opciones o elementos al mapa.
Para esto tendremos simplemente que añadir el control correspondiente al layout de nuestra actividad principal. En el caso de la nueva API v2 este “control” se añadirá en forma de fragment (de ahí que hayamos tenido que incluir la librería 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:
<?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"
class="com.google.android.gms.maps.SupportMapFragment"/>
Por supuesto, dado que estamos utilizando fragments, la actividad principal también tendrá que extender a FragmentActivity (en vez de simplemente Activity como es lo “normal”). Usaremos también la versión de FragmentActivity incluida en la librería android-support para ser compatibles con la mayoría de las versiones Android actuales.
public class MainActivity extends android.support.v4.app.FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
...
}
Con esto, ya podríamos ejecutar y probar nuestra aplicación. En mi caso las pruebas las he realizado sobre un dispositivo físico con Android 2.2 ya que por el momento parece haber algunos problemas para hacerlo sobre el emulador. Por tanto tendréis que conectar vuestro dispositivo al PC mediante el cable de datos e indicar a Eclipse que lo utilice para la ejecución de la aplicación.
Si ejecutamos el ejemplo deberíamos ver un mapa en la pantalla principal de la aplicación, 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 este artículo espero haber descrito todos los pasos necesarios para comenzar a utilizar los servicios de mapas de Google utilizando su nueva API Google Maps Android v2. Si tenéis cualquier duda o propuesta de mejora no dudéis en escribirlo en los comentarios.
Como habéis podido comprobar hay muchos preparativos que hacer, aunque ninguno de ellos de excesiva dificultad. En los próximos artículos aprenderemos a utilizar más características de la nueva API.
Puedes consultar y/o descargar el código completo de los ejemplos desarrollados en este artículo accediendo a la pagina del curso en GitHub.













Hola,
me he dado cuenta que no se ha copiado la línea que puse que faltaba en el manifest:
“”
Saludos, espero que ahora se vea.
Parece ser que no puedo copiar directamente, básicamente deben añadir el uses-permission
android.permission.ACCESS_NETWORK_STATE
Pueden, verlo en la web de desarrolladores de google:
https://developers.google.com/maps/documentation/android/start
Gracias Jonay, lo actualizo en el artículo. Saludos.
He hecho todo como me comentas pero nada me sigue saliendo la pantalla en blanco con los botones de zoom. verifique que solo tenga el servicio de maps para android, tambien verifique la debug.keystore sha1 y me sigue saliendo igual, las librerias las tengo, no se si deba agregar algo adicioal de opengl, ayuda please
Buenos días:
Enhorabuena por el tutorial es increíble!
He hecho una aplicación basándome en este tutorial y al instalarlo por usb me funciona perfectamente pero al subirlo al googleplay los mapas me salen blancos con los botones del zoom.
¿Qué podría ser?
Buenos días JDiego, la API Key generada para probar/depurar la aplicación en el emulador o por USB no te sirve para la aplicación publicada en el market, debes generar otra exclusiva para la aplicación final firmada. Probáblemente ése haya sido tu problema. Intentaré escribir cuanto antes un artículo sobre este tema y poner una nota en éste para evitar confusiones de este tipo. Saludos.
Muchas gracias por contestar.
Pero y como debería hacerlo?
Creo que ya lo he solucionado. Estoy esperando a que me publiquen la actualización.
Ya por fin funciona!!!! si quereis ver la aplicación es esta: ¿Dónde aparqué? en Google Play! https://play.google.com/store/apps/details?id=com.jldes.dondeaparque …
me sale lo mismo cuando ejecuto me sale el mapa en blanco y solo el zoom nada mas le puse mi API de android todo diganme como puedo solucionarlo por favor hice todo lo que dice aqui y nada
A mi también me sale la pantalla en blanco con los botones del zoom. Alguna idea de qué es lo que puede haber ido mal? Lo he revisado todo y creo que es correcto.
Muchas gracias!
Hola otra vez!
Ahora ya no me sale la pantalla en blanco. He conseguido que me funcione. El problema ha venido por que en lugar de seleccionar el servicio “Google Maps Android API v2″ había seleccionado otro similar, el “Google Maps API v2″.
Muchas gracias por los tutoriales, son geniales!!!
Hola por tercera vez.
Se me había olvidado decir que ha habido otra cosa que me ha dado problemas: Tenía el móbil con la opción wi-fi activada, sin ninguna red wi-fi disponible. Una vez la he desactivado, se me ha mostrado el mapa correctamente.
Hola Eloweyn ese mismo error tuve yo jaja ahora ya me funciona pero lo que quiero saber es por que cuando lo exporto como apk y lo instalo en mi celular no sale el mapa vuelve a salir blanco según he visto es otra api key exclusiva pero como obtenerla alguien sabe como puedo hacer que funcione en mi celular instalando ?
Hola que tal, muchas gracias por el tutorial, pero hay una correcion que debes hacer, en el paso donde tienes que importar la libreria del play services, segun la pagina de android, se debe hacer una copia de esa carpeta y esa copia importarla a la app. Dejo link donde indican eso.
http://developer.android.com/google/play-services/setup.html
en el punto 1 donde dice : To set up a project to use the Google Play services SDK
Saludos a todos!
Hola Edgardo, efectivamente es buena práctica (aunque no obligatorio) hacer una copia de la carpeta de Play Services para referenciarla desde tu proyecto. Pondré un anota en el atículo. Gracias por el comentario.
Yo solo quiero saber que necesito para para que al momento de instalar mi aplicación despues de ser exportada funcione como cuando lo emulo, cuando emulo el google maps con mi celular por defecto ya se instala y asi funciona pero cuando exporto mi aplicacion como apk y lo pongo en la raiz de mi celular y al abrirlo se instala ya no me funciona sale de nuevo la pantalla blanca a que se debe, solo funciona cuando lo instalo emulando y no instalando sin emular
Excelente post. La descripción de los pasos a seguir es clara y sencilla. Enhorabuena.
Un saludo.
Hola, ante todo muchas gracias por los tutoriales. Estoy intentando ejecutar este primer ejemplo en un emulador de Android y no hay manera de que muestre los mapas. La aplicacion se ejecuta correctamente, pero solo se ve un fondo gris en vez del mapa. He seguido todos los pasos cuidadosamente y no hay manera. He probado con un emulador creado con Eclipse, y con una version de Android ejecutada como VM con VirtualBox, y no hay manera. He probado incluso a ejecutar los ejemplos que vienen con Google Play y tampoco me muestra ningun mapa (pero puedo “moverme” por el mapa, la aplicacion captura eventos, etc, pero sin mostrar nunca ningun mapa). Estoy atascado totalmente y no se como puedo solucionar esto, alguna idea? O es que no hay manera de ejecutar estas apps correctamente en un emulador? Estoy volviendome loco!!! Gracias de antemano.
Hola, en primer lugar gracias por los tutoriales!
En segundo lugar, una pregunta: Tengo que generar una nueva API Key para cada aplicación que haga? O con hacerlo una vez ya sirve? Gracias!
Fantástico articulo, me ha servido de mucho para conocer la nueva API de Google Maps
Eres un genio, hace un tiempo pille tu libro en pdf, pero creo que en breve tendre que “renovarlo” comprandotelo again ;)
En serio, esta guía es genial, me ha funcionado a la…. Segunda! (me equivoque de servicio xD)
Para aquellos que solo os carga los botones y de fondo gris:
Mirad que hay varios servicios de Google Maps.
En concreto teneis que activar el que dice:
Google Maps Android API v2
Fijaos en lo de Android!!! ;)
En fin, Gracias de nuevo!
Hola, ha habido algún cambio con la última actualización del sdk de? es que ya no me funciona
Segui tu tutorial al pie de la letra, pero lamentablemente no me muestra el mapa, solo los controles del zoom… y en el log aparece “04-10 22:12:24.400: E/Google Maps Android API(17675): Failed to load map. Could not contact Google servers.”
He escogido correctamente el servicio de Google y ademas creado mi Api Key bien.
Por favor necesito tu ayuda, Saludos y excelente pagina.
hola, muy bueno el tutorial.
He intentado cargar la aplicacion tanto en el movil tanto en modo depuracion como creando el .apk e instalandolo y no me funciona en ninguno de los dos.No da errores de compilacion pero cuando la aplicacion se abre, me dice que se ha detenido la aplicacion y se cierra
A alguien mas le pasa o si alguien sabe como solucionarlo que porfavor me lo diga que me estoy volviendo loco
Gracias
hola, otra vez, ya he conseguido que se abra la aplicacion pero ahora me pasa lo mismo que he visto que le pasa a muchos,que se abre la aplicacion pero no muestra el mapa, sino que me muestra la pantalla en blanco y los botones de acercar y alejar
Estoy usando la google api 16 y creo que todo lo demas bien configurado
Ai alguien consiguio solucionar este problema porfavor que me lo dga que esto lo necesito para un tema de trabajo no por un hobby
Gracias
Muy chido el tuto, el fragment no me funcionó a la primera con el código del MainActivity, reemplace el código del MainActivity por el del tutorial de Maps Android API v2
El último código de la siguiente página
https://developers.google.com/maps/documentation/android/start#installing_the_google_maps_android_v2_api
Muy buena página
Gracias Eloweyn
A mí me había pasado lo mismo y me estaba volviendo loco.
¡Aseguraos que escogéis el servicio Google Maps Android API v2!
ALG no funciona en tu celular porque el certificado con el que se firma la aplicación sólo es uno estándar que provee el SDK Android para desarrollarla (Debug). Si la quieres instalar, debes firmarla con un certificado digital propio.
Gracias por el tutorial; es genial
Muchas gracias por el aporte! Estoy aprendiendo android gracias a ti! :D
Hola, soy nuevo en esto de android y necesito vuestra ayuda.
Cómo puedo cargar un mapa en el que filtre solamente aquellos tipos de comercios que me interesan? Es decir, si quiero filtrar solo restaurantes qué API y de qué manera tengo que utilizarla.
Mil gracias compañeros.
Saludos.
Hola, segui todos los pasos del tutorial, pero algo anda mal, cuando corro mi emulador me dice: “This app won’t run unless you update Google Play services” , baje Google services y todo como dice en el tutorial, los mapas que trae por default el emulador si los puedo ver bien, pero este que hice no :(, help me please!
Excelente muy buen post y muy bien explicado ya lo implemente. Saludos xd
Me pasa lo mismo que a gaby.
He probado varias cosas, entre ellas pasar las librerías de play services al propio proyecto (esto es lo que decía edgardo), pero no hay forma de que funcione con el emulador.
En cualquier caso en el teléfono funciona.
Un apunte más: Al menos para desarrollo no es necesario generar el certificado y firmar la app. A mi me ha funcionado sin hacerlo. Únicamente puse la key que me dieron en la consola de APIs
Gran tuto Salva.
Muchas gracias.
Excelente… todos los tutoriales… Gracias
Hola a todos.
Antes que nada felicitar al autor por el trabajo que dedica para que otros podamos aprender. Esa es una labor digna de elogiar.
Hasta ahora he seguido el tutorial, encontrándome algunos errores que más o menos he podido resolver siempre. Pero he llegado a este punto en el que no resuelvo un error que me da. He seguido, repasado los pasos y rehecho de nuevo este proyecto que apenas tiene código pero cuando abro la aplicación en el emulador se me cierra. En el Log Cat me sale el siguiente error:
05-01 15:11:59.916: E/AndroidRuntime(1099): java.lang.RuntimeException: Unable to start activity ComponentInfo{domouso.mapas1/domouso.mapas1.MainActivity}: android.view.InflateException: Binary XML file line #1: Error inflating class fragment
He probado en un emulador de un Nexus-One con Platform 2.2 y API level 8 y en otro Tablet con Platform 4.2.2 y level 17.
Por otro lado tengo otra duda, no sé si tiene que ver con el error pero cuando le damos a importar la librería SDK de Google Play Services a nuestro Espacio de trabajo, y le damos al proyecto a Properties, añadir la librería Google-play-services-lib, al darle a ADD nos sale en el listado el nombre de la librería con el símbolito de OK verdecito. Si quiero repetir este paso y vuelvo al mismo cuadro de diálogo, veo que la librería está cargada pero en lugar del símbolo de OK verdecito tengo el aspa roja al lado.
Gracias por leerme
Buenos días:
Antes que todo agradecer el excelente trabajo del autor de esta serie de tutoriales. De otro lado insitir en las preguntas que han formulado anteriormente asociadas a que cuando corre la aplicación, aparece un mensaje: Esta aplicación no se ejecutará si no actualizas Google Play Services. Y en seguida el botón de actualizar.
Hola josé antonio pudistes solucionar el error que te daba pues me pasa lo mismo pero no lo he logrado solucionar. saludos
Que va pelirroja, no lo he solucionado. Si tú lo haces antes que yo dímelo y viceversa :)
Hola quisiera saber si alguno de ustedes, sabe como implementar las indicaciones de una ruta utilizando google maps, espero su ayuda y muchas gracias por el tutorial me sirvio mucho
Buenas!! He conseguido que aparezca el mapa en el emulador. Tienes que darle una coordenada y decirle donde quieres que aparezca. Ahora funciona pero seguiré investigando a ver si se puede conseguir algo mejor ;)
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//————————–
/* boton que muestra el mapa*/
String geoUriString = “geo:0,0?q=Madrid”;
Uri geoUri = Uri.parse(geoUriString);
Intent intent = new Intent(Intent.ACTION_VIEW, geoUri);
startActivity(intent);
}
Tenes idea como se saca el sha1 en MAC?