PDA

Ver la Versión Completa : [ CONSULTA ] Acceder a un archivo de la nube y descargarlo de forma automática.


Rsc
28/01/17, 13:54:28
Buenas, como ya he comentado en otros hilos, estoy haciendo una app para mi grupo de amigos, básicamente es un contador de goles y tarjetas para una liga de futbol.

El problema que se me plantea, es que el archivo en el que guardo los datos, es un archivo .sql que tengo en la raíz de mi teléfono, y aunque por lo pronto he conseguido compartir ese archivo a mi cuenta de Google Drive, una vez que actualizo los datos, no encuentro la forma de acceder a ese archivo de forma automática, para que sustituya al que tengo en la SD.

Un saludo.

yovesmlmt
28/01/17, 17:41:03
Foldersync lo puedes usar con task. Le das a que sincronice antes de abrir la app durante x segundos y listo. Yo lo hago con la que yo uso.

El único pego es que tarda más en abrir la app

Enviado desde mi SM-G900F mediante Tapatalk

WillyWeb
28/01/17, 19:37:04
En el recopilatorio tienes tres o cuatro aplicaciones que se integran con Tasker y que se encargan de mantener sincronizados archivos entre la nube y tu dispositivo...

http://www.htcmania.com/showthread.php?t=541152 (post #8 y posteriores)

Rsc
28/01/17, 21:20:44
Gracias, probaré a ver si con alguna consigo lo que necesito, pero tenía la esperanza de poder hacerlo exclusivamente con Tasker.

Rsc
28/01/17, 22:20:12
Foldersync lo puedes usar con task. Le das a que sincronice antes de abrir la app durante x segundos y listo. Yo lo hago con la que yo uso.

El único pego es que tarda más en abrir la app

Enviado desde mi SM-G900F mediante Tapatalk

Una cosa, entiendo que utilizas la versión de pago no?

WillyWeb
29/01/17, 11:28:39
Una cosa, entiendo que utilizas la versión de pago no?

Para las funciones que requieres me temo no te queda otro remedio. Por lo que pone en Google Play la versión gratuita sólo permite dos cuentas, no tiene filtros de sincronización, ni integración con Tasker.

Rsc
29/01/17, 18:35:51
Al final estoy utilizando Dropsync, y funciona muy bien. Me crea una carpeta en Dropbox y otra en mi SD, y me permite sincronizarlas desde una acción de Tasker. Hasta ahora nunca me había hecho falta sincronizar nada de forma automática, y no le había prestado atención a esos plugin .

cace0353
21/03/17, 10:27:19
Al final estoy utilizando Dropsync, y funciona muy bien. Me crea una carpeta en Dropbox y otra en mi SD, y me permite sincronizarlas desde una acción de Tasker. Hasta ahora nunca me había hecho falta sincronizar nada de forma automática, y no le había prestado atención a esos plugin .

Pero Rsc, has resuelto el problema de compartir esta base de datos .sql (yo uso la extensión .db pero esto no deberia afectar el método) entre varios dispositivos de manera que la base de datos en la nube se mantenga actualizada con los cambios que cada usuario de la aplicación haga?

Me encuentro con el problema de que las actualizaciones que hago yo en la BD tengo que compartirlas mediante un perfil que cada dia manda un correo con la base actualizada a los otros (2) usuarios de la aplicación, y es un engorro. El que recibe el correo debe descargar el archivo y moverlo de la carpeta Download a la del programa. Me gustaria poder hacerlo automáticamente...

Rsc
21/03/17, 20:29:04
Buenas cace0353, a mi si me funciona este método. Te digo como lo estoy haciendo.

En Dropbox creo una carpeta compartida donde guardo mi base de datos, la comparto con quién me interese, y en mi caso le doy permisos de escritura para que puedan hacer modificaciones.

En Dropsync, configuro que la carpeta que previamente he compartido en Dropbox, sea la que se sincronice de forma automática en mi teléfono.

En mi caso tengo una carpeta en mi SD llamaba Promunio, y una en Dropbox denominada de igual forma, que a su vez comparto con los usuarios que quiero que tengan acceso a ese archivo.

Lo que continua, simplemente es sincronizar Dropsync mediante una acción de Tasker, después de hacer una modificación en la tabla.

Si únicamente quieres que tengan acceso a ese archivo en la nube , hasta aquí te vale, si quieres que tengan acceso en su teléfono y que puedan hacer modificaciones, tienen que instalar también Dropsync, y o bien que utilicen Tasker se creen un perfil como el que he descrito, o bien como yo he hecho... Lo convierto en app, se la instalan y si de paso, muestro la tabla en una escena.

Espero haberme explicado bien, ya me comentas y te ha funcionado o se me ha quedado algo por concretar. Un saludo.

cace0353
21/03/17, 21:04:03
Gracias Rsc…

Ya he enviado el link a la DB a mi hijo (el que lo usa habitualmente) con permiso de "view". El programa tiene un condicional en todas las operaciones de modificación de manera que, si la variable %SUP vale 0 no se puede modicar la DB (esto sólo lo hago yo…, de momento!).

Entonces entiendo que bastaría incluir una acción que, en la primera utilización del día, sincronizara el archivo. Al inicio del programa tengo una acción que guarda en %Hoy el valor de %DATE. En cada inicio de programa comprueba si %Hoy vale %DATE y, si no coincide, se ejecutaria la sincronización.

Como dispones la acción correspondiente para esta sincronización?
Tal vez copiando el archivo en la carpeta que alberga la BD?



Enviat des del meu Nexus 5 usant Tapatalk

Rsc
21/03/17, 22:03:30
La frecuencia de sincronización depende de como lo quieras plantear. En mi caso, como comenté, es una tabla de gooleadores y tarjetas de una liga de fútbol , que actualizamos entre dos, por lo tanto, coloco la acción de sincronización en varias tareas, para que esté actualizado en tiempo real. La verdad que no he tenido muy en cuenta la obtimizacion de gasto de datos, se podría poner una condición de conexión a wifi para solventar ese problema.

Si quieres que se sincronice únicamente una vez al día, veo bien la forma en la que lo has planteado, estableciendo %DATE a % Hoy y usándolo como condicional.

Y la acción de sincronización se encuentra en el apartado de pluging, no tiene prácticamente nada que configurar, simplemente realizando esa acción, se sincroniza el archivo que contenga la carpeta sincronizada en Dropsync.

cace0353
21/03/17, 22:07:29
"Y la acción de sincronización se encuentra en el apartado de pluging, no tiene prácticamente nada que configurar, simplemente realizando esa acción, se sincroniza el archivo que contenga la carpeta sincronizada en Dropsync."

Entonces deberé instalar Dropsync en el otro(s) dispositivos sí ó sí...?

Enviat des del meu Nexus 5 usant Tapatalk

Rsc
21/03/17, 22:22:02
Correcto, pensaba que te había dicho ese detalle. Por eso tenía tanto interés en conseguir sincronizarlo desde una acción de Tasker, sin necesidad de ningún plugin... Pero no lo he conseguido.

cace0353
21/03/17, 22:26:40
Gracias, es que en el post #9 había interpretado que si no tenían permisos de edición los otros usuarios no necesitaban instalar Dropsync…
Haré pruebas y, en cuanto funcione como quiero, postearé como lo haya resuelto.

Muchas gracias, colega!

Enviat des del meu Nexus 5 usant Tapatalk

Rsc
21/03/17, 22:32:44
Lo habré expresado mal, en cuanto me conecte desde un PC lo corregiré para que no de lleve a confusión a nadie más. Ya nos contarás, un saludo!

Caravantes
22/03/17, 03:56:34
Lo que continua, simplemente es sincronizar Dropsync mediante una acción de Tasker, después de hacer una modificación en la tabla.

Genial, RSC.
Interpreto que este sistema podría servir para crear un tinglado Tasker que permita a varias personas compartir un fichero (de cualquier clase), y modificarlo ocasionalmente. Si cualquiera de ellos modifica su fichero, su Tasker/Dropsync se encargará de actualizar la copia alojada en Dropbox, y luego los demás (por medio de Dropsync) recibirían automáticamente el fichero actualizado. También se puede crear una tarea que periódicamente consulte el fichero (en Dropbox o en la tarjeta del smartphone) para lanzar un aviso (u otra tarea) si se detecta que el fichero ha sido modificado (por otra persona). ¿Es correcto?

Ahora que lo veo así, me pregunto si todo esto no podría hacerse directamente desde Tasker, sin utilizar Dropsync. Supongo que una acción HTTP Post servíría para hacer la actualización desde una variable Tasker hacia el fichero en la nube, y otra acción HTTP Get podría servir para hacer la actualización desde la nube hacia una variable Tasker. Luego hay que añadir las acciones que intercambian entre la variable Tasker y el fichero local del smartphone. ¿Creéis que funcionaría?

cace0353
22/03/17, 11:15:50
Ahora que lo veo así, me pregunto si todo esto no podría hacerse directamente desde Tasker, sin utilizar Dropsync. Supongo que una acción HTTP Post servíría para hacer la actualización desde una variable Tasker hacia el fichero en la nube, y otra acción HTTP Get podría servir para hacer la actualización desde la nube hacia una variable Tasker. Luego hay que añadir las acciones que intercambian entre la variable Tasker y el fichero local del smartphone. ¿Creéis que funcionaría?

Ya probé de actualizar la base de datos así, pero no funciona... Al guardar %HTTPD en un archivo, este pierde el formato, disminuye la extensión en Kb y no és utilizable...

Aparte de esto con Dropsync se actualizan los cambios de TODA la carpeta que contiene la base de datos y unas 700 fotos de los diferentes artículos.

De momento si que me ha funcionado la opción de sincronizar la BD entre dos dispositivos mios (el móvil y la tablet) mediante Dropsync. Lo he hecho mediante un perfil de manera que cada dia, a las 8:00 de la mañana se ejecuta la sincronización. El móvil (que es el dispositivo "administrador") és el único que puede realizar cambios. Por eso en la tablet he configurado Dropsync en modo "Download mirror" és decir, actualiza sus archivos (la propia BD y las imágenes adjuntas a cada ficha) pero no modifica los originales que están alojados en Dropbox.

Es suficiente hacerlo una vez al dia ya que las compras (con posible variaciones de coste-PVP y la adición de nuevos productos) se hacen entre 2 y 4 veces por semana. Ahora estoy haciéndolo manualmente una vez por semana y és un engorro!
Para facilitarme el trabajo el programa me genera archivos de depuración: artículos sin ficha, articulos sin precio, artículos sin código de barras, artículos sin imagen... y añadí una columna en la BD con la fecha en la que modifica el precio de coste o el de venta.

El problema que he detectado és que en el dispositivo receptor de otro usuario deberé configurar Dropsync de manera que se sincronice con "MI" cuenta de Dropbox y esto podria traer problemas... Tengo previsto para estos casos añadir un perfil de Aplicación que bloquee con contraseña la aplicación Dropsync...

Rsc
22/03/17, 16:13:19
El problema que he detectado és que en el dispositivo receptor de otro usuario deberé configurar Dropsync de manera que se sincronice con "MI" cuenta de Dropbox

No tiene porque. La carpeta de Dropbox, la compartes con otro usuario, por lo tanto en su Dopbox también le aparecerá esa carpeta. La modificación de cualquier archivo de esa carpeta, se hará efectivo para todos los usuarios que tengan acceso a esa carpeta compartida.

La sería algo así;

Usuario uno modifica archivo ubicado en una carpeta sincronizada con Dropsync.

Tras una acción de sincronización del plugin Dropsync, el archivo más reciente, en este caso el ubicado en el teléfono del usuario uno, actualiza/sustituye al ubicado en la carpeta sincronizada de Dropbox.

Usuario dos, que tiene acceso compartido a esa carpeta de Dropbox, tras una acción de sincronización Dropsync , actualiza/sustituye el archivo más reciente, en este caso, el ubicado en la carpeta compartida de Dropbox.

Por lo tanto, cualquier modificación se hace efectiva en ambos teléfonos.

Creo que no se me escapa nada... y a mi me funciona así, cace0353, para cualquier prueba que quieras hacer, puedes contar conmigo.

cace0353
22/03/17, 16:18:00
Gracias por tu buena disposición Rsc.
En cuanto pueda echarle mano al móbil de mi hijo lo pruebo y lo comento en este hilo…

Enviat des del meu Nexus 5 usant Tapatalk

Rsc
22/03/17, 16:21:53
Ahora que lo veo así, me pregunto si todo esto no podría hacerse directamente desde Tasker, sin utilizar Dropsync. Supongo que una acción HTTP Post servíría para hacer la actualización desde una variable Tasker hacia el fichero en la nube, y otra acción HTTP Get podría servir para hacer la actualización desde la nube hacia una variable Tasker.

He usado poquísimo esas acciones, y no se si sería posible, pero habrá que probarlo. Intento hacer todo lo que pueda sin utilizar plugin, ya que es una limitación muy grande a la hora de convertir los proyectos en apk y compartirlos.

Caravantes
22/03/17, 19:10:44
El problema que he detectado és que en el dispositivo receptor de otro usuario deberé configurar Dropsync de manera que se sincronice con "MI" cuenta de Dropbox y esto podria traer problemas...

Cualquier usuario de Dropbox puede compartir un fichero o carpeta con otras personas que él establezca, dándoles solo acceso de lectura (no podrán cambiar nada) o acceso total. Los usuarios "invitados" no podrán acceder a los otros archivos o carpetas del que invita. Esto se establece a nivel de Dropbox, sin importar que el acceso se haga por Dropsync o por cualquier otro medio.

En último caso, si quieres que eso no tenga ninguna posibilidad de interferencia con tu cuenta personal, siempre puedes abrirte una segunda cuenta de Dropbox solo para este asunto.