Crear o grabar o descargar archivo en carpeta download del movil (regarding record or download file in mobile download folder)

Hola a todos.
Estoy usando una extensión que permite hacer una captura de la pantalla del movil, (TaifunScreenshot1). Funciona muy bien !! pero el archivo jpg que se crea lo guarda en la carpeta de la app.
Es posible o que se debe hacer para que se grabe en carpeta download del movil ?

image

use the file component and copy the screenshot from ASD to shared storage

Taifun

He intentado de muchas formas y no logro que la imagen se guarde o copie en la carpeta download del móvil. :thinking:
Que estoy haciendo mal?

image

image

image

image

es un metodo de protecion de mit app inventor solo te permite configurar en la pantalla principal el scope donde se guardaran los archivos fuera de esos no deja

The extension stores the screenshot in ASD
Therefore

Taifun

Mis saludos y respetos, es Ud. un gran conocedor y maestro en la materia. Yo sinceramente soy un novato novato en app inventor. recíén estoy aprendiendo y mi desarrollo es mas que nada para uso personal y que facilite mis tareas diarias de mi trabajo.
Eres tu el creador de la extensión de copiar pantalla? Felicitaciones en realidad cada cosa que veo me sorprende mas. Como es eso de ser sponsor de una extensión o parte de ella. Porque es justo reconocer el buen trabajo que hacen los desarrolladores.
Cuando te refieres a componente archivo, te refieres al que está en la interfase storage o te refieres a una extensión aparte?

You can use the file component or also one of the file extensions to copy a file

Yes, I'm the author of the screenshot extension

Taifun

Lo que pasa que no me deja ver el archivo creado.
El archivo "miscreen.jpg" si se guarda pero en la carpeta de la app y dentro de /files; pero cuando trato de ver ese archivo con el explorador del móvil, no me lo muestra o no me permite ver los archivos de esa carpeta. Sé que existe porque porque conecto mi móvil al pc y llego hasta esa carpeta y si lo puedo ver.
Se habla o dice tanto de los archivos, permisos, versiones de android que la verdad me confunde mas.
Mi móvil usa android 13 pero hay quienes usan android 10 y no pensé fuera tan complicado copiar de ASD a /download o /imagenes etc etc.

:disappointed:

1 Like

Felicitaciones por tu extensión.
Lo único malo, para mi uso, y que no entiendo, es por que con mi móvil no puedo llegar a ese archivo generado, simplemente no me deja ver esas carpetas, pero si conecto mi pc si puedo llegar a verlo.
Mi aplicación de desarrollo me muestra información de determinados códigos y detalles del mismo y suelo hacer un pantallazo de dicha información y enviar a otros contactos. Pero se me complica poder enviar esa pantalla.

Hay alguna explicación por que solo guarda en la ASD o en la carpeta de la app.?
Es por un tema de seguridad? de permisos? de facilidad?

Igual agradezco tu atención.

Google changed the rules to store files a few years ago... previously you could store files whereever you want, now not anymore... Android gets more and more restricted... since then apps can store files without additional permission only in ASD... to keep it simple the screenshot extension stores files in ASD therefore

if you want to share the screenshot just copy it from ASD to shared storage... it is very simple... just try it and if you have problems, show us a screenshot of your relevant blocks...

to see it use a good file manager like total commander

Taifun

1 Like

He realizado varias pruebas y no logro copiar ese bendito archivo a la carpeta download o shared. Tan complicado es este asunto de copiar un archivo?, pero como una descarga cualquiera de internet lo hace sin problemas en esa carpeta?

image

  1. Primer intento, no encontraba el archivo a copiar en la carpeta de la /files/shapes-diamond.png
  2. Segundo intento, coloque / al inicio y tampoco lo encontraba
  3. Tercer intento, puse toda la ruta que se indica en la PC, porque lo tuve que conectar el movil al PC para saber la ruta. Al parecer creo que si lo encontraba pero ahora ya no lo copia donde deseo :frowning_face:

Con la tercera opción sale el error: /storage/emulated/0/download/shapes-diamond.png: open failed:EACCES (Permission denied)

Ya estoy a punto de tirar la toalla
:cold_sweat:

You found out yourself, that the file extension needs a relative or absolute path... only the filename will not help...

For this purpose there also is the method ApplicationSpecificDirectory you could have used...

See also the documentation App Inventor Extensions: File | Pura Vida Apps

Returns the application specific directory /storage/emulated/0/Android/data/<packageName>/files you can use to read or write files without READ_ or WRITE_EXTERNAL_STORAGE permission

EDIT: and if you want the app to work also after building and not only in the companion app, then you should follow that suggestion...

So rhe 3rd option is correct... to fix the error you have to understand, that paths are case sensitive... there is no such directory /download, it is called /Download... sorry, Android is a bit picky here...

Taifun

Sigo en busca de entender que pasa.

For this purpose there also is the method ApplicationSpecificDirectory you could have used...

Estoy usando la extensión File - Pura Vida Apps y si me parece genial usar el método ApplicationSpecificDirectory

EDIT: and if you want the app to work also after building and not only in the companion app, then you should follow that suggestion.

A que te referías con eso de: ... after building and not only in the companion app...?
Para ver mejor resultado, cree la app como apk

Gracias por darme a conocer respecto al tema de uso de minúsculas y mayúsculas; no lo sabía ni tenia en cuenta.

Aun con las pruebas realizadas y para mi mala suerte, sigo con el mismo problema de permiso para guardar.

Adjunto mis bloques y el resultado

image

image

This looks good... you are almost there...

My guess is, the file already iexists in the Download folder... you probably first tested using the companion app... and now you are not able to overwrite the existing file...

Remove the file from the Download folder and try again... each time you might want to use a different target filename to avoid that issue...

Taifun

He revisado bien y NO existe el archivo en carpeta Download.
Existía pero en la ruta de la aplicación complementario: MIT A2 companion pero lo eliminé y nuevamenete ejecute con la APK y ya no aparece en esa ruta y tampoco en Download.
Las pruebas las estoy haciendo de manera directa con el APK instalado.

El error persiste que al parecer no puede copiar en la ruta shared o compartida como es la carpeta Download.

Have you tested without putting file:// at the beginning of your path for the Download directory ?

Add "2" after the fileName (before .png):

and try again. Only with Companion or the APK (not both).

(So: ...-diamond2.png in toFileName)

También he realizado la prueba quitando file:// pero el resultado sigue siendo el mismo y con el mismo error.

Hola, gracias por tu atención.
También he realizado la prueba agregando 2 u otro nombre al archivo pero el resultado sigue siendo el mismo que no lo guarda y me da el mismo error.

Post the aia.