Tasker Para hablar de todo lo relacionado con la aplicación tasker

Respuesta
 
Herramientas
  #1  
Viejo 11/09/17, 16:16:39
Array

[xs_avatar]
Rsc Rsc no está en línea
Usuario muy activo
 
Fecha de registro: jun 2011
Mensajes: 502
Modelo de smartphone: Xiaomi Mi5s
Tu operador: Otra
Comunicarse con otro dispositivo sin plugin -> Crear un WebService con PHP para una DB SQL en la Web

Buenas, continuo con una app que utilizo para llevar la contabilidad de goles de un juego de fútbol y quiero mejorar la forma en la que se sincroniza un archivo compartido de Dropbox.

Para ello, tengo una DB SQL en la que guardo los registros, y por lo pronto al iniciar la app, utilizo el plugin Dropsync para sincronizarlo.

Después de la acción de sincronización, utilizo una acción de "espera hasta" y muestro un texto "Cargando..." Hasta que la sincronización haya sido completada.

El problema es que esa sincronización dura alrededor de 10 segundos, y lo veo excesivo.

He contemplado sincronizar cada X tiempo, y así cuando cualquiera inicie la app, el archivo ya esté listo y no tenga que volverlo a sincronizar, pero no lo veo efectivo, por el consumo de batería y porque cabe la posibilidad de que se abra sin haber sido actualizado.

La mejor opción es que cuando uno haga cambios en la base de datos, se comunique con el resto de tal forma que provoque un evento al que pueda responder con una sincronización.

He pensado en una llamada, un WhatsApp.. pero ninguna de las opciones son automáticas, y quería saber si a alguien se le ocurre algo mejor.

EDITO: Ha medida que se han ido planteando ideas para conseguir este fin, a @WillyWeb se le ocurrió que sería mucho más efectivo interactuar con un DB SQL alojada en la web, en vez de con una DB SQL alojada en una carpeta compartida de Dropbox. Aunque en principio parecía un proyecto muy complicado, finalmente se ha conseguido, y a continuación dejo el enlace del hilo que se ha creado sobre esto, en el que intento detallar paso a paso, todo lo que me ha ido explicando WillyWeb.

Crear un WebService con PHP - Iteractuar con una DB SQL en la Web (Pendiente de añadir los últimos avances)
http://www.htcmania.com/showthread.php?p=27156494

Aunque el tema se ha ido desviando poco a poco hasta que solo nos hemos centrado en conseguir todo lo relacionado con el WebService, en este hilo también podéis encontrar algunas ideas para comunicarse con otro dispositivo, pero eso sí, por lo pronto únicamente con la ayuda de plugins.

Última edición por Rsc Día 29/10/17 a las 12:28:23.
Responder Con Cita


  #2  
Viejo 12/09/17, 13:54:36
Array

[xs_avatar]
Caravantes Caravantes no está en línea
Usuario muy activo
· Votos compra/venta: (1)
 
Fecha de registro: feb 2011
Mensajes: 2,200
Modelo de smartphone: Samsung Galaxy S9
Tu operador: Lowi
 Cita: Originalmente Escrito por Rsc Ver Mensaje
La mejor opción es que cuando uno haga cambios en la base de datos, se comunique con el resto de tal forma que provoque un evento al que pueda responder con una sincronización.
Suponiendo que todos los dispositivos tengan Tasker...
Suponiendo que no te importe instalar una app adicional (lo dudo porque en el título has puesto "sin plugin")...

Creo que los dos hilos siguientes aportan pistas que pueden ayudarte:

Tasker para principiantes: Lección 6. Autoremote.
http://www.htcmania.com/showthread.php?t=569291

Comunicacion entre androids bt o wifi lan para enviar tareas o variables
http://www.htcmania.com/showthread.php?t=1279076
__________________
Firmado: Caravantes, miembro del equipo que promueve el Subforo de Tasker
Responder Con Cita
Los siguientes 2 usuarios han agradecido a Caravantes su comentario:
  #3  
Viejo 12/09/17, 16:03:41
Array

[xs_avatar]
Rsc Rsc no está en línea
Usuario muy activo
 
Fecha de registro: jun 2011
Mensajes: 502
Modelo de smartphone: Xiaomi Mi5s
Tu operador: Otra
Gracias Caravantes, pero dado que ya necesitamos usar Dropsync, en principio voy a evitar tener que usar otra app más.

Cómo es una app para un grupo de amigos, creo que al final optaré por que el detonante sea un mensaje de WhatsApp, aunque quede un poco chapuzas.
Responder Con Cita
  #4  
Viejo 13/09/17, 22:15:18
Array

[xs_avatar]
Mx WaR HaBiB Mx WaR HaBiB no está en línea
Usuario muy activo
 
Fecha de registro: mar 2014
Localización: Dream Planet
Mensajes: 875
Modelo de smartphone: Galaxy Note 3
Tu operador: Movistar
 Cita: Originalmente Escrito por Rsc Ver Mensaje
app que utilizo para llevar la contabilidad de goles de un juego de fútbol
buen día estimado.

hace tiempo que te veo escribiendo sobre el tema y la verdad que ya tengo curiosidad

podrías describir que hace tu tarea o si es posible compartirla para ver como funciona?

de antemano gracias por darle vida a este subforo tan guay!

Saludos!
__________________
"Tanto si piensas que puedes, como si piensas que no puedes, estás en lo cierto"
— Henry Ford —
Responder Con Cita
Gracias de parte de:
  #5  
Viejo 13/09/17, 22:52:12
Array

[xs_avatar]
Rsc Rsc no está en línea
Usuario muy activo
 
Fecha de registro: jun 2011
Mensajes: 502
Modelo de smartphone: Xiaomi Mi5s
Tu operador: Otra
Claro, acabo de subir un par de vídeos para el que quiera, pueda ver el resultado.

Cómo he comentado, es para llevar la contabilidad de goles y tarjetas de un juego de fútbol, que mis amigos y yo llevamos jugando toda la vida.

Antes lo anotabamos en una libreta, pero por desgracia ahora vivimos cada uno en una punta de España y hay que recurrir a Tasker.




Última edición por Rsc Día 13/09/17 a las 22:57:06.
Responder Con Cita
Gracias de parte de:
  #6  
Viejo 13/09/17, 23:00:03
Array

[xs_avatar]
Mx WaR HaBiB Mx WaR HaBiB no está en línea
Usuario muy activo
 
Fecha de registro: mar 2014
Localización: Dream Planet
Mensajes: 875
Modelo de smartphone: Galaxy Note 3
Tu operador: Movistar
 Cita: Originalmente Escrito por Rsc Ver Mensaje
contabilidad de goles y tarjetas de un juego de fútbol,
que hermosa interfaz...

todos pueden interactuar y agregarles goles, tarjetas o solo el admin?

me gustaria saber mas al respecto hay alguna manera?

gracias por compartir!
__________________
"Tanto si piensas que puedes, como si piensas que no puedes, estás en lo cierto"
— Henry Ford —
Responder Con Cita
  #7  
Viejo 13/09/17, 23:21:01
Array

[xs_avatar]
Rsc Rsc no está en línea
Usuario muy activo
 
Fecha de registro: jun 2011
Mensajes: 502
Modelo de smartphone: Xiaomi Mi5s
Tu operador: Otra
 Cita: Originalmente Escrito por Mx WaR HaBiB Ver Mensaje
que hermosa interfaz...
Muchas gracias!

 Cita: Originalmente Escrito por Mx WaR HaBiB Ver Mensaje
todos pueden interactuar y agregarles goles, tarjetas o solo el admin
La tabla Sqlite la ubico en una carpeta compartida de Dropbox, y ahí mismo puedes configurar quien tiene acceso a lectura y escritura sobre ese archivo.

También podrías poner cualquier tipo de condición en Tasker, para hacer cualquier tipo de modificación. Por ejemplo, que al iniciar la primera vez la app, requiera una contraseña (una acción de consultar variable) y en cada elemento de la escena que se pueda modificar la tabla, utilizarla como IF.

Ah, para que funcione, hace falta Dropsync, que en este caso lo uso como plugin de Tasker, para que cada vez que se haga una modificación, se actualice el archivo de la nube, porque claro, no se puede trabajar con un archivo que se encuentre únicamente en la nube.

Y poco más, la app básicamente se basa en el uso de tablas Sqlite, y todo lo he aprendido en el hilo que tenemos en este foro sobre este tema, gracias a los compañeros que se han molestado en explicarlo detalladamente, sobretodo en este caso @danko9696, que entre otras cosas es el culpable de que el texto del elemento menú, se vea bien alineado.
Responder Con Cita
Gracias de parte de:
  #8  
Viejo 14/09/17, 08:35:21
Array

[xs_avatar]
WillyWeb WillyWeb no está en línea
Usuario muy activo
 
Fecha de registro: dic 2008
Localización: Hoy aquí y mañana allí
Mensajes: 2,048
Modelo de smartphone: OnePlus 3T | Xiaomi 9T Pro
Tu operador: Vodafone
 Cita: Originalmente Escrito por Rsc Ver Mensaje
Ah, para que funcione, hace falta Dropsync, que en este caso lo uso como plugin de Tasker, para que cada vez que se haga una modificación, se actualice el archivo de la nube, porque claro, no se puede trabajar con un archivo que se encuentre únicamente en la nube.
Pues me parece que eso no es del todo cierto.

Yo investigaría la posibilidad de montar la base de datos online en uno de los cientos de alojamientos web gratuitos que proporcionan MySQL para acceder a ella remotamente desde tu aplicación en Tasker. Eso eliminaría de raíz el problema de sincronizar el archivo ya que los datos estarían disponibles para todos nada más ser editados.

Lo que no te puedo decir es el grado de dificultad que puede tener eso
__________________
Miembro del equipo que promueve el [Subforo de Tasker]

Si das pescado a un hombre hambriento le nutres una jornada. Si le enseñas a pescar le nutrirás toda la vida. (Lao-Tsé - Filósofo chino)
Responder Con Cita
Los siguientes 3 usuarios han agradecido a WillyWeb su comentario:
[ Mostrar/Ocultar listado de agradecimientos ]
  #9  
Viejo 14/09/17, 16:11:14
Array

[xs_avatar]
danko9696 danko9696 no está en línea
Usuario muy activo
 
Fecha de registro: ago 2012
Mensajes: 2,371
Modelo de smartphone: Mate 8
Tu operador: Yoigo
 Cita: Originalmente Escrito por WillyWeb Ver Mensaje
Pues me parece que eso no es del todo cierto.

Yo investigaría la posibilidad de montar la base de datos online en uno de los cientos de alojamientos web gratuitos que proporcionan MySQL para acceder a ella remotamente desde tu aplicación en Tasker. Eso eliminaría de raíz el problema de sincronizar el archivo ya que los datos estarían disponibles para todos nada más ser editados.

Lo que no te puedo decir es el grado de dificultad que puede tener eso
Algo he visto respecto a eso:
https://www.reddit.com/r/tasker/comm...0x&sh=4a5e7924
Responder Con Cita
Los siguientes 2 usuarios han agradecido a danko9696 su comentario:
  #10  
Viejo 14/09/17, 16:15:33
Array

[xs_avatar]
Rsc Rsc no está en línea
Usuario muy activo
 
Fecha de registro: jun 2011
Mensajes: 502
Modelo de smartphone: Xiaomi Mi5s
Tu operador: Otra
Gracias WillyWeb, se me olvidó añadir antes de esa afirmación un "que yo sepa..."

Eso que comentas mejoraría considerablemente el funcionamiento de la aplicación, voy a ver si encuentro algo de información y si soy capaz de implementarla en este proyecto. Un saludo

Edito: Justo cuando he enviado este mensaje, he visto tu comentario danko, gracias de nuevo.

Última edición por Rsc Día 14/09/17 a las 16:17:34.
Responder Con Cita
  #11  
Viejo 14/09/17, 16:30:34
Array

[xs_avatar]
WillyWeb WillyWeb no está en línea
Usuario muy activo
 
Fecha de registro: dic 2008
Localización: Hoy aquí y mañana allí
Mensajes: 2,048
Modelo de smartphone: OnePlus 3T | Xiaomi 9T Pro
Tu operador: Vodafone
 Cita: Originalmente Escrito por danko9696 Ver Mensaje
Algo he visto respecto a eso...
En esa conversación tratan otra forma de atacar el problema que tampoco está nada mal, aunque requiere conocimientos de PHP ya que se tienen que crear unos script del lado del servidor que hagan de intermediarios entre tu aplicación y la base de datos remota. Los datos van y vienen a base de acciones HTTP Get/Post con los campos y valores pertinentes. Si encuentras esos scripts hechos (es cosa de buscar un poco) seguramente este método es más fácil de implementar en una aplicación de Tasker.

Mi propuesta era más directa ya que se trata de conectar directamente con la base de datos sin usar intermediarios. La pega puede estar en crear la conexión (lo que he visto es a base de Java) y en saber si Tasker es capaz de tratar con una base de datos remota (que no lo he mirado nunca).

Entretenimiento asegurado para el que se meta en el charco.
__________________
Miembro del equipo que promueve el [Subforo de Tasker]

Si das pescado a un hombre hambriento le nutres una jornada. Si le enseñas a pescar le nutrirás toda la vida. (Lao-Tsé - Filósofo chino)
Responder Con Cita
Gracias de parte de:
  #12  
Viejo 15/09/17, 23:14:44
Array

[xs_avatar]
Rsc Rsc no está en línea
Usuario muy activo
 
Fecha de registro: jun 2011
Mensajes: 502
Modelo de smartphone: Xiaomi Mi5s
Tu operador: Otra
Bueno, por mucho que intento buscar información, no consigo ni acercarme a la solución.

He creado una base de datos, con una única tabla en un servidor SQL, pero no encuentro la forma de comunicarme con ese servidor y de manipular la DB.

Copio a continuación lo que incluyo en la acción HTTP Get:

Mysql Server (2)
A1: HTTP Get [ Server:Port:sql11194714:[email protected] tabase.com Path: Attributes:show tables; Cookies: User Agent: Timeout:30 Mime Type: Output File: Trust Any Certificate:Off ]
A2: Flash [ Text:%HTTPR Long:Off ]

En esa tarea figura el usuario y la contraseña, que según indica la guía de Tasker, tiene que preceder al servidor de la siguiente manera

Usuario:contraseña@

Dejo los datos de la DB, por si alguien se anima a intentarlo, sin tener que crear una nueva.

Un saludo.
Responder Con Cita
Gracias de parte de:
  #13  
Viejo 16/09/17, 11:29:35
Array

[xs_avatar]
WillyWeb WillyWeb no está en línea
Usuario muy activo
 
Fecha de registro: dic 2008
Localización: Hoy aquí y mañana allí
Mensajes: 2,048
Modelo de smartphone: OnePlus 3T | Xiaomi 9T Pro
Tu operador: Vodafone
Es que creo que esa no es la forma de hacerlo

Por lo que he visto tienes dos opciones:
  • Conectar directamente con la base de datos remota (lo poco que he visto lo hacían con Java). Este sistema de debería permitir atacar directamente a la base de datos con comandos SQL. Para poder hacer esto necesitas un servidor que permita conexiones externas, que el soporte de Java de Tasker/Android tenga las instrucciones que necesitas y que el soporte de SQL de Tasker/Android sea capaz de tratar con una base de datos remota.
  • Dejar la conexión con la base de datos y los comandos SQL en manos de un script en PHP del lado del servidor y enviar/recibir los datos a base de HTTP Post/Get. Para esto necesitas ese script PHP reciba tus solicitudes HTTP y devuelva los datos en JSON o XML (para que sean fáciles de procesar con JavaScript, por ejemplo).

Al margen de la complejidad de cada uno de esos sistemas, en esa acción que has puesto parece que has mezclado los dos conceptos.
__________________
Miembro del equipo que promueve el [Subforo de Tasker]

Si das pescado a un hombre hambriento le nutres una jornada. Si le enseñas a pescar le nutrirás toda la vida. (Lao-Tsé - Filósofo chino)
Responder Con Cita
Los siguientes 2 usuarios han agradecido a WillyWeb su comentario:
  #14  
Viejo 16/09/17, 11:59:18
Array

[xs_avatar]
Rsc Rsc no está en línea
Usuario muy activo
 
Fecha de registro: jun 2011
Mensajes: 502
Modelo de smartphone: Xiaomi Mi5s
Tu operador: Otra
Por lo que comentas, y lo que he estado viendo relativo a este tema, son conceptos que sin tener una base de conocimientos de programación, son difíciles de entender.

No obstante, seguiré echando un vistazo por si encuentro algún ejemplo de esos script que mencionas, que se puedan utilizar en Tasker.
Responder Con Cita
  #15  
Viejo 16/09/17, 19:08:53
Array

[xs_avatar]
WillyWeb WillyWeb no está en línea
Usuario muy activo
 
Fecha de registro: dic 2008
Localización: Hoy aquí y mañana allí
Mensajes: 2,048
Modelo de smartphone: OnePlus 3T | Xiaomi 9T Pro
Tu operador: Vodafone
Después de curiosear un poco no parece tan complicado

He visto que de los dos métodos que te he propuesto el más utilizado es el segundo (usar un script PHP que haga de intermediario entre la DB y la aplicación del móvil). Ese "concepto" recibe el nombre técnico de "WebService" y una vez que tienes la palabra clave Google te proporciona docenas de sitios con tutoriales sobre el tema.

En este sitio describen los scripts básicos que debe tener un proyecto típico. No es exactamente lo que necesitas pero te ayudará a ver que la cosa es relativamente sencilla.

http://programacion.net/articulo/com...usando_php_141

En este otro sitio crean un proyecto completo (aplicación Android, DB y scripts PHP). No te pierdas en la creación de la aplicación Androd y salda al punto 5.

http://www.hermosaprogramacion.com/2...ql-php-y-json

Nada de eso te soluciona el problema, pero es un buen punto de partida. Simplemente busca "crear webservice para aplicación android" (o algo parecido) y encontraras docenas de tutoriales.

Suerte
__________________
Miembro del equipo que promueve el [Subforo de Tasker]

Si das pescado a un hombre hambriento le nutres una jornada. Si le enseñas a pescar le nutrirás toda la vida. (Lao-Tsé - Filósofo chino)
Responder Con Cita
Gracias de parte de:
  #16  
Viejo 16/09/17, 22:07:43
Array

[xs_avatar]
Rsc Rsc no está en línea
Usuario muy activo
 
Fecha de registro: jun 2011
Mensajes: 502
Modelo de smartphone: Xiaomi Mi5s
Tu operador: Otra
Gracias WilliWeb, le he estado mirando por encima y tiene mejor pinta que lo que yo había ido leyendo hasta ahora. Por lo menos está todo bien explicado. Además, como tu dices, el saber que el termino que lo denomina es WebService, me facilitará mucho a la hora de buscar información.

Iré comentando por aquí los progresos, en caso de que haya. Saludos.
Responder Con Cita
Gracias de parte de:
  #17  
Viejo 16/09/17, 22:08:22
Array

[xs_avatar]
Rsc Rsc no está en línea
Usuario muy activo
 
Fecha de registro: jun 2011
Mensajes: 502
Modelo de smartphone: Xiaomi Mi5s
Tu operador: Otra
Mensaje duplicado

Última edición por Rsc Día 17/09/17 a las 00:13:49.
Responder Con Cita
  #18  
Viejo 17/09/17, 14:58:24
Array

[xs_avatar]
WillyWeb WillyWeb no está en línea
Usuario muy activo
 
Fecha de registro: dic 2008
Localización: Hoy aquí y mañana allí
Mensajes: 2,048
Modelo de smartphone: OnePlus 3T | Xiaomi 9T Pro
Tu operador: Vodafone
He seguido investigando un rato más y me he dado cuenta de algo a tener en cuenta desde el minuto cero.

La mayor parte de los ejemplos/tutoriales que he visto hacen uso de la arquitectura REST para construir la URL que recibe el WebService. En REST los "verbos" (las ordenes) no se pasan en la URL sino con el método HTTP (GET/POST/PUT/DELETE principalmente) y Tasker sólo soporta GET/POST, así que ya te puedes ir olvidando de implementar cualquier ejemplo de los que encuentres en el que se mencione REST.

Pero tranquilo, que no está todo perdido

Revisa este ejemplo...

http://tosblama.blogspot.com.es/2015...e-con-php.html

Es de una simplicidad extrema. Usa GET o POST indistintamente. Y lo mejor es que con muy pocos cambios/ajustes creo que lo podrías usar en tu proyecto.

Espero que te apañe
__________________
Miembro del equipo que promueve el [Subforo de Tasker]

Si das pescado a un hombre hambriento le nutres una jornada. Si le enseñas a pescar le nutrirás toda la vida. (Lao-Tsé - Filósofo chino)
Responder Con Cita
Los siguientes 2 usuarios han agradecido a WillyWeb su comentario:
  #19  
Viejo 18/09/17, 19:03:23
Array

[xs_avatar]
danko9696 danko9696 no está en línea
Usuario muy activo
 
Fecha de registro: ago 2012
Mensajes: 2,371
Modelo de smartphone: Mate 8
Tu operador: Yoigo
Como ha dicho antes Caravantes yo antes de meterme en esos berenjenales probaría con autoremote, enviando y recogiendo las notificaciones como cadenas a las que luego puedes aplicar split/join para integrarlo en la base de datos local y funcionar como hasta ahora.

Y una vez hecho, tranquilamente, ponerse poco a poco con el tema del servidor web, que creo que es la mejor solución a más largo plazo, aunque la más complicada también.
Responder Con Cita
Los siguientes 2 usuarios han agradecido a danko9696 su comentario:


  #20  
Viejo 18/09/17, 20:54:31
Array

[xs_avatar]
WillyWeb WillyWeb no está en línea
Usuario muy activo
 
Fecha de registro: dic 2008
Localización: Hoy aquí y mañana allí
Mensajes: 2,048
Modelo de smartphone: OnePlus 3T | Xiaomi 9T Pro
Tu operador: Vodafone
 Cita: Originalmente Escrito por danko9696 Ver Mensaje
Como ha dicho antes Caravantes yo antes de meterme en esos berenjenales probaría con autoremote...
Es que en el post #3 ya dejó claro que no quería usar otra aplicación.

Y no es que no sea un proyecto interesante inventar algo que notifique a los otros usuarios que la DB ha sufrido cambios para que procedan a descargarla, que lo es. Pero sería trabajo perdido si al final tira por la solución de usar una DB remota, que al margen de su complejidad (y después de mirarlo un poco ya no me lo parece tanto) yo diría que es la mejor solución al problema.
__________________
Miembro del equipo que promueve el [Subforo de Tasker]

Si das pescado a un hombre hambriento le nutres una jornada. Si le enseñas a pescar le nutrirás toda la vida. (Lao-Tsé - Filósofo chino)
Responder Con Cita
Respuesta

Estás aquí
Regresar   Portal | Indice > Todo sobre Android > Otro software para Android > Tasker



Hora actual: 17:32:51 (GMT +2)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2024 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /