Desem informació al mòbil


L’objectiu d’aquest apartat és crear una aplicació que ens permetrà fer fotos i gestionar on s'emmagatzemen.


Més concretament es pretén donar resposta a les preguntes següents:


  • Com puc emmagatzemar fotografies?
  • Com puc recuperar arxius mitjançant un explorador?
  • Com puc utilitzar l'objecte ActivityStarter per cridar diferents recursos?


Fem una foto

En aquest bloc, ampliarem les possibilitats de l'app que es desenvolupa en l'apartat Introducció a l’App Inventor - Fem una foto. Ens quedarem amb la versió que proposa utilitzar un Canvas per a gravar una foto en el nostre dispositiu.

Un cop tenim feta l’app proposada, decidim amb quin nom volem gravar la foto donant a l’usuari l’opció d’introduir el nom de l’arxiu. Per poder fer això crearem un quadre de text en el qual l’usuari haurà d’escriure el nom de l’arxiu i un label on l'app mostrarà la ruta en la qual s'emmagatzema l'arxiu.

La interfície quedarà com segueix:



Per emmagatzemar les imatges que fem amb la nostra app, les gravarem sempre a una carpeta que anomenem fotos tal com segueix:


És important mostrar la ubicació en un label ja que aquesta ubicació pot canviar d'un dispositiu a un altre.

Algunes de les ubicacions on s'emmagatzemen les imatges en funció de la versió del sistema operatiu son les següents:

  • /storage/emulated/0
  • /storage/sdcard/0

Tant en mode simulació, usant l'AI Companion, com amb l’app instal·lada en el dispositiu, la ubicació serà la mateixa.

Si seleccionem el nom d’un arxiu ja existent s’esborrarà el contingut previ sense avisar-nos-en.

Si volem accedir a imatges emmagatzemades al dispositiu mòbil, App Inventor ens ofereix un objecte anomenat ImagePicker. Aquest objecte crida al visor d’imatges que tingui definit per defecte el sistema operatiu i ens retorna el nom de la imatge que haguem seleccionat.



No utilitzarem però aquest objecte per la nostra app ja que va a buscar les imatges que ha fet directament la càmera i que s’han gravat a la carpeta on per defecte s’emmagatzemen les fotos de la càmera del nostre dispositiu mòbil.

Accedirem a les imatges que hem gravat mitjançant l'explorador d’arxius del mòbil, que ens permetrà navegar per les carpetes del nostre dispositiu. Ho farem mitjançant l’objecte ActivityStarter que configurarem en iniciar l'app o des de la pantalla de disseny amb els següents valors:



Un cop ja tenim aquest objecte correctament configurat, el cridem mitjançant un nou botó que anomenem BCerca:


I recuperem el resultat que ens retorna la crida:


Al camp ResultUri hi tindrem el nom de la imatge que hem seleccionat en l'explorador d'arxius. Aquest valor el podem mostrar en l'etiqueta on mostrem la ruta d'emmagatzematge de l'arxiu o emmagatzemar-lo al camp BackgroundImage del Canvas per tal que ens en mostri el contingut.

L’objecte Activity Starter permet cridar a molts recursos. Cada un d’ells demanda uns valors i ens retorna uns resultats diferents en cada cas. Per poder esbrinar com s’ha de fer la crida en cada cas disposeu d'una aplicació anomenada App Inventor ActivityStarter que us permetrà esbrinar com configurar-lo en funció del recurs que vulgueu cridar. A més a més de mostrar-nos com hem de fer una crida a un recurs, ens permet modificar els paràmetres, simular la crida en el nostre propi dispositiu i veure quin resultat ens retorna.

L'App que s'iniciarà per defecte en el mòbil és el gestor de fitxers d'Android. En cas que no ho faci per defecte, heu de fer que mostri els fitxers de l'emmagatzematge intern:



Aleshores navegar fins a la carpeta fotos:

Alguns fabricants de mòbils preinstal·len apps gestores de fitxers diferents a la nativa d'Android. Si en teniu més d'una, haureu de triar quina utilitzeu.