Charla ofrecida en el Instituto Gran Capitán de Córdoba con motivo de la Sysmana 2014. Se realizó un repaso de nuevas tecnologías en Android: realidad aumentada, geolocalización y NFC.
. . . Nuevas tecnologías en Android NFC, Geolocalización, Realidad Aumentada Nacho Álvarez @neonigmacdb [email protected] 11 de febrero de 2014 Nacho Álvarez (WUL4) Nuevas tecnologías en Android 11 de febrero de 2014 1 / 26
1 Acerca de mí . . . 2 ¿Realidad aumentada? Aplicaciones RA en Android Mi elección Demo Google Glass . . . 3 Geolocalización Introducción Alternativas SIG Geoinquietos: Córdoba se mueve Demo geolocalización . . . 4 NFC Introducción NDEF NFC en Android: envío datos NFC en Android: recepción datos Demo . . . 5 Material Nacho Álvarez (WUL4) Nuevas tecnologías en Android 11 de febrero de 2014 2 / 26
Definición de realidad aumentada ▶ Superposición de información virtual sobre entornos reales a partir de una aplicación informática ▶ ¿Qué necesitamos? Una pantalla donde poder ver esta información añadida Un software que, controlando una cámara, un sensor o un GPS e interpretando los patrones o coordenadas del mundo real, nos generará esta información ▶ Multitud de aplicaciones Nacho Álvarez (WUL4) Nuevas tecnologías en Android 11 de febrero de 2014 4 / 26
. . Mi elección personal ▶ Vuforia es buena herramienta gratis total para desarrollar una aplicación de realidad aumentada con reconocimiento de imágenes ▶ Sin embargo, la parte de geolocalización habría que desarrollarla manualmente, y el tándem JNI + NDK es más engorroso para desarrollar ▶ Wikitude tiene una versión Edu gratuita con marca de agua, y es realmente sencillo, casi todo se hace con Javascript ▶ Para aplicaciones comerciales de peso, la inversión de Wikitude es de 600e en un único pago y de 9e/mes por el uso de 3 imágenes en su nube. Si usamos la herramienta Target Manager nos sale gratis, pero desarrollaremos la parte Javascript manualmente Nacho Álvarez (WUL4) Nuevas tecnologías en Android 11 de febrero de 2014 9 / 26
. Listado IR ▶ IR simple matching: Wikitude Examples -> 1. Image Recognition -> 1.1. Image On Target ▶ IR multiple targets: Wikitude Examples -> 1. Image Recognition -> 1.2. Multiple Targets ▶ IR 3D model on target: Wikitude Examples -> 2. 3d And Image Recognition -> 2.1 3d Model On Target ▶ IR sistema solar: Wikitude Examples -> 99. Demo -> 99.3 Solar System ▶ IR con playback de video: Wikitude Examples -> 6. Video -> 6.2. Playback States ▶ IR mostrando vídeo transparente: Wikitude Examples -> 6. Video -> 6.4. Bonus-Transparent Video ▶ Integración en aplicación propia: My own app ▶ Cómo se hizo: http: //developer.wikitude.com/tools/target-manager/?level=1 Nacho Álvarez (WUL4) Nuevas tecnologías en Android 11 de febrero de 2014 11 / 26
. . Realidad aumentada en Google Glass http://www.youtube.com/watch?v=39W6CMpdGsM Nacho Álvarez (WUL4) Nuevas tecnologías en Android 11 de febrero de 2014 13 / 26
. . Self scanning con Google Glass http://www.youtube.com/watch?v=MCheU8fZURo Nacho Álvarez (WUL4) Nuevas tecnologías en Android 11 de febrero de 2014 14 / 26
Geolocalización ▶ Se refiere al posicionamiento con el que se define la localización de un objeto espacial (representado mediante punto, vector, área, volumen) en un sistema de coordenadas determinado. Este proceso es utilizado frecuentemente en los Sistemas de Información Geográfica. ▶ Las principales cuestiones que puede resolver un sistema de información geográfica, ordenadas de menor a mayor complejidad, son: Localización: preguntar por las características de un lugar concreto. Condición: el cumplimiento o no de unas condiciones impuestas al sistema. Tendencia: comparación entre situaciones temporales o espaciales distintas de alguna característica. Rutas: cálculo de rutas óptimas entre dos o más puntos. Pautas: detección de pautas espaciales. Modelos: generación de modelos a partir de fenómenos o actuaciones simuladas. Nacho Álvarez (WUL4) Nuevas tecnologías en Android 11 de febrero de 2014 15 / 26
. Alternativas SIG ▶ Google Maps Es un servidor de aplicaciones de mapas en la web. Ofrece imágenes de mapas desplazables, así como fotografías por satélite del mundo e incluso la ruta entre diferentes ubicaciones o imágenes a pie de calle Google Street View. Sigue siendo gratuito por debajo de 25.000 peticiones a sus servidores. A partir de aquí es necesario pagar a razón de cuatro dólares por cada 1.000 peticiones adicionales. ▶ OpenStreetMap OpenStreetMap (también conocido como OSM) es un proyecto colaborativo para crear mapas libres y editables. Los mapas se crean utilizando información geográfica capturada con dispositivos GPS móviles, ortofotografías y otras fuentes libres. Esta cartografía, tanto las imágenes creadas como los datos vectoriales almacenados en su base de datos, se distribuye bajo licencia abierta Open Database License (ODbL). Nacho Álvarez (WUL4) Nuevas tecnologías en Android 11 de febrero de 2014 16 / 26
mueve . . Geoinquietos: Córdoba se mueve ▶ Encuentros locales informales entre gente que comparte inquietudes, intereses, experiencias o cualquier idea en el ámbito de la geomática, el software libre y la tecnología geoespacial ▶ Las reuniones suelen constar de una o varias pequeñas presentaciones o talleres sobre un tema relacionado con la tecnología y la información geográfica. ▶ Cualquier persona está invitada a asistir a las actividades de Geoinquietos, con el único requisito de querer compartir conocimientos y aprender de los demás. ▶ Geoinquietos ODB: Twitter: https://twitter.com/geoinquietosODB Google+: https://plus.google.com/u/0/communities/117372031538433814161 Facebook: https://www.facebook.com/geoinquietoscordoba Nacho Álvarez (WUL4) Nuevas tecnologías en Android 11 de febrero de 2014 17 / 26
. Listado Geo Demo ▶ Solar System: Wikitude Examples -> 99. Demo -> 99.2 Solar System ▶ Browsing POIs: Wikitude Examples -> 5. Browsing Pois -> 5.6 Capture Screen Bonus ▶ Integración en aplicación propia: My own GPS app Nacho Álvarez (WUL4) Nuevas tecnologías en Android 11 de febrero de 2014 19 / 26
NFC ▶ Near field communication es una tecnología de comunicación inalámbrica, de corto alcance y alta frecuencia que permite el intercambio de datos entre dispositivos. ▶ Los estándares de NFC cubren protocolos de comunicación y formatos de intercambio de datos, y están basados en ISO 14443 (RFID, radio-frequency identification) y FeliCa ▶ Android puede hacer lo siguiente en cada uno de los modos NFC: En el modo R/W, podemos leer tags NDEF y tarjetas contactless como las relativas al uso de transportes. En el modo P2P se puede realizar un intercambio de información entre el móvil y otro dispositivo NFC gracias a Android Beam, una API que sin embargo aún es muy limitada. El modo CE (Card Emulation) fue introducido en versiones posteriores de Gingerbread para soportar el uso de Google Wallet. El elemento seguro embebido se conecta al controlador NFC a través de una conexión S2C (NFC-WI). Nacho Álvarez (WUL4) Nuevas tecnologías en Android 11 de febrero de 2014 20 / 26
NDEF ▶ NDEF -NFC Forum Data Exchange Format- es un formato ligero de mensaje binario diseñado para encapsular una o más cargas útiles de información dentro de un mensaje simple. ▶ Un mensaje NDEF contiene uno o más registros NDEF, cada uno de los cuales transporta una carga de información de tipo arbitrario. ▶ Un registro NDEF transporta tres parámetros para describir su payload: longitud, tipo e identificador opcional. Nacho Álvarez (WUL4) Nuevas tecnologías en Android 11 de febrero de 2014 21 / 26
envío datos . . NFC en Android: envío datos @Override public NdefMessage createNdefMessage(NfcEvent event) { Time time = new Time(); time.setToNow(); String text = "ola k ase"; NdefMessage msg = new NdefMessage( new NdefRecord[] { createMimeRecord( "text/plain", text.getBytes()) }); return msg; } public NdefRecord createMimeRecord(String mimeType, byte[] payload) { byte[] mimeBytes = mimeType.getBytes(Charset.forName("US-ASCII")); NdefRecord mimeRecord = new NdefRecord( NdefRecord.TNF_MIME_MEDIA, mimeBytes, new byte[0], payload); return mimeRecord; } Nacho Álvarez (WUL4) Nuevas tecnologías en Android 11 de febrero de 2014 22 / 26
recepción datos . . NFC en Android: recepción datos @Override public void onNewIntent(Intent intent) { setIntent(intent); } @Override public void onResume() { super.onResume(); if (NfcAdapter.ACTION_NDEF_DISCOVERED.equals(getIntent().getAction())) processIntent(getIntent()); } void processIntent(Intent intent) { Parcelable[] rawMsgs = intent.getParcelableArrayExtra( NfcAdapter.EXTRA_NDEF_MESSAGES); // only one message sent during the beam NdefMessage msg = (NdefMessage) rawMsgs[0]; mInfoText.setText(new String(msg.getRecords()[0].getPayload())); } Nacho Álvarez (WUL4) Nuevas tecnologías en Android 11 de febrero de 2014 23 / 26
Listado NFC Demo ▶ Envío Web ▶ Envío vídeo ▶ Integración en aplicación propia Nacho Álvarez (WUL4) Nuevas tecnologías en Android 11 de febrero de 2014 25 / 26
y preguntas ▶ Presentación Latex/Beamer: https://bitbucket.org/ jialvarez/taller-nuevas-tecnolog-as-android ▶ Código de la aplicación: https://bitbucket.org/jialvarez/wikitude-example ▶ Enlace directo al apk: http: //nacho-alvarez.es/descargas/gdgdevfest-wikitude.apk ▶ ¿Preguntas? Nacho Álvarez (WUL4) Nuevas tecnologías en Android 11 de febrero de 2014 26 / 26