Alertas geolocalizadas (Geotriggers) con ArGIS y Android Raúl Jiménez Ortega raul.jimenez@esri.es Carlos Henche Gómez carlos.henche@esri.es
Objetivos y expectativas para hoy Como en 1h no da para ver todo sobre GeoTriggers los objetivos son: Conocer qué son y qué ventajas ofrecen Entender mejor en qué contextos se pueden usar y qué posibilidades de configuración ofrecen Aprender qué herramientas existen para facilitar el desarrollo y depuración Entender un poco cómo funcionan a bajo nivel Conocer las herramientas de desarrollo y depuración Facilitar algunos recursos para los autodidactas Autor: Pete Prodoehl
Entender el contexto Dónde y para qué se usan
Location-aware Apps (Aplicaciones conscientes del contexto)
Aplicaciones en domótica Activa, desactiva, reconfigura,
NASA HQ PHOTO Maurizio Pesce Dispositivos Wearables Notificaciones de tu bolsillo a tu muñeca o a tus ojos!
Android Android Wear Android & Mirror API Geotriggers en dispositivos Android Geotrigger SDK + Android / Android Wear / Mirror API
Qué son y cómo funcionan Visión a alto y bajo nivel
Geotrigger Service: Geo-fences o Geo-vallas Perímetros virtuales de un área geográfica real - Wikipedia
ofertas Arquitectura: Geotriggers en ArcGIS Online Ofertas, cine App 1 POST /location/update (App ID, Location, Tags, GCM_Project_ID, Device ID) Geotrigger Service GEOM TAGS ACTION geom1 tag1 callbackurl geom2 ofertas, cine push oauth Credentials, Push Certificates Notification API REST App X GEOM TAGS ACTION geom1 tag1 callbackurl geom2 tag2 push Push Server oauth Credentials, Push Certificates
Geotrigger tools Trabajando y depurando aplicaciones con geotriggers
Geotrigger Tools: Editor Herramienta Open Source para crear triggers App 1 GEOM TAGS ACTION geom1 tag1 callbackurl Geotrigger Editor POST /trigger/create (App ID, Feature) Geotrigger Service geom2 tag2 push oauth Credentials, Push Certificates API REST App X GEOM TAGS ACTION geom1 tag1 callbackurl geom2 tag2 push oauth Credentials, Push Certificates
Geotrigger Tools: Editor Herramienta Open Source para crear triggers App 1 GEOM TAGS ACTION geom1 tag1 callbackurl Geotrigger Editor POST /trigger/create (App ID, Feature) Response Geotrigger Service geom2 tag2 push oauth Credentials, Push Certificates API REST App X GEOM TAGS ACTION geom1 tag1 callbackurl geom2 tag2 push oauth Credentials, Push Certificates
Geotrigger Tools: Faker Herramienta Open Source para falsificar localizaciones App 1 Geotrigger Faker POST /location/update GEOM TAGS ACTION geom1 tag1 callbackurl geom2 tag2 push Geotrigger Service API REST oauth Credentials, Push Certificates App X GEOM TAGS ACTION geom1 tag1 callbackurl geom2 tag2 push oauth Credentials, Push Certificates
Geotrigger Tools: Faker Herramienta Open Source para falsificar localizaciones App 1 Geotrigger Faker POST /location/update GEOM TAGS ACTION geom1 tag1 callbackurl geom2 tag2 push Response Geotrigger Service API REST oauth Credentials, Push Certificates App X GEOM TAGS ACTION geom1 tag1 callbackurl geom2 tag2 push oauth Credentials, Push Certificates
Trigger Callbacks - Ejemplo Info https://developers.arcgis.com/geotrigger-service/api-reference/trigger-callback/ Debugger: http://desarrolladores.esri.es/code/geotriggers/callback.php
Geotrigger Tools: Pre-requisitos 1.- Creamos una cuenta developers.arcgis.com 2.- Creamos una app developers.arcgis.com/en/applications 3.- Registramos nuestra aplicación developers.arcgis.com/en/applications/#/<hash>/register/
Geotrigger Tools - Geotrigger Editor Un vistazo rápido
Parámetros de un trigger Etiquetas: filtrar/clasificar las alertas Condition: geometría y dirección (entrar/salir) Action: - Push (móvil): mensaje, icono, sonido, url, profile - Change the tracking profile - Callback URL (server) Rate Limit: intervalo mínimo de tiempo para volver a desencadenar la acción (Push, ) Times: número máximo por dispositivo Time: días de la semana y horas Otros: properties, geoformat, sound, Notificaciones Activa la música que te interesa y te avisaremos de lo conciertos Rock Indie Techno Hiphop.
Parámetros de un trigger Etiquetas: filtrar/clasificar las alertas Condition: geometría y dirección (entrar/salir) Action: - Push (móvil): mensaje, icono, sonido, url, profile - Change the tracking profile - Callback URL (server) Rate Limit: intervalo mínimo de tiempo para volver a desencadenar la acción (Push, ) Times: número máximo por dispositivo Time: días de la semana y horas Otros: properties, geoformat, sound,
Profiles (Perfiles de configuración) ROUGH MODE (Modo áspero): 1. Consumo mínimo de batería 2. Menor precisión, usa triangulación. 3. Precisión aproximada: 500metros (en función del nº de antenas) FINE MODE (Modo fino) 1. Alto consumo de batería (usa siempre GPS, aproximadamente cada 5 segs) 2. Recomendado para cortos periodos de tiempo o dispositivos con alimentación 3. Precisión aproximada: 40 metros ADAPTATIVE MODE (Modo adaptativo) 1. Recomendado en mayoría de los casos 2. Se adapta al contexto (proximidad a las geofences, velocidad de desplaz., etc) 3. Precisión aproximada: 100m sin GPS. Funciona bien en ciudades (usa wifi) 4. Almacenar polígonos cercanos y usa geofencing nativo (GPS cdo está cerca)
Configurando las notificaciones PUSH Android y developers.arcgis.com
Configurar GCM en ArcGIS Online (1/4) 1. Creamos un proyecto console.developers.google.com 2. Activamos la API de GCM /project/<project_id>/apiui/api
Configurar GCM en ArcGIS Online (2/4) 4. Seleccionamos clave de servidor /project/<project_id>/apiui/credential 3. Creamos una clave pública /project/<project_id>/apiui/credential
Configurar GCM en ArcGIS Online (3/4) 5. Dejamos las opciones por defecto /project/<project_id>/apiui/credential 6. Copiamos la clave /project/<project_id>/apiui/credential
Configurar GCM en ArcGIS Online (4/4) https://developers.arcgis.com/en/applications/#/<hash>/settings/
Configurando nuestro proyecto Android Studio & Eclipse
Documentación y códigos github.com/esri?query=geotrigger developers.arcgis.com
GeotriggerActivity.java
GeotriggerActivity.java developers.arcgis.com/en/applications/#/<hash>/licensing
GeotriggerActivity.java console.developers.google.com/project/<project_id>
Notificando a Android Wear Usando NotificationCompat
Enviando una notificación personalizada
Capturando la notificación PUSH data={ \ title \ : \ Titulo de la not \,. }
Notificando a Google Glass Usando Mirror API y PHP
Enviando una notificación personalizada tag2 tag2 App 1 Mirror POST /location/update (App ID, Location, Tags, GCM_Project_ID, Device ID) POST callback_url Callback Payload (JSON) Geotrigger Service API REST GEOM TAGS ACTION geom1 tag1 callbackurl geom2 tag2 push oauth Credentials, Push Certificates App X GEOM TAGS ACTION geom1 tag1 callbackurl geom2 tag2 push oauth Credentials, Push Certificates
Cómo comunicarse con la Mirror API https://github.com/googleglass/mirror-quickstart-php
http://desarrolladores.esri.es http://geodevelopers.org
Conclusiones Y para terminar, recordad
Aspectos a destacar 1. Geotriggers es un servicio de ArcGIS Online Ready to use 2. Geotrigger SDK 1. Te abstrae del hardware y S.O. 2. Se preocupa del problema de la batería por ti 3. Cuenta gratuita de desarrolladores = 600 geotriggers / mes 4. Hay 3 tipos de acciones: Push, Callbacks y cambio de Profile
Otros recursos 1. Vídeos / proceedings (esri.com/events/recent-proceedings) 1. Geotrigger Service: Get Started, Overview, Use Cases & the API 2. Geotrigger Service: ios & Android Tips and Tricks 3. Lessons Learned while Beta Testing the ESRI Geotrigger SDK 2. Esri Geotrigger Service FAQ 3. http://desarrolladores.esri.es -> Máquina virtual 4. Github FeatureService2Geotrigger