|
||
|
|
|
|||||||
| Tasker Para hablar de todo lo relacionado con la aplicación tasker |
![]() |
|
|
Herramientas |
|
#1
|
||||
|
||||
|
Esta vez ha sido un Taskero de este foro el que me ha hecho la pregunta ...
¿Existe un contexto que active un perfil al sacar una foto?El tema no es nuevo en este foro ... https://www.htcmania.com/showthread.php?t=727091 Entonces ya se apuntaron ideas muy interesantes, pero el "problema" quedó sin solucionar. ¿Alguna idea nueva?
__________________
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) |
|
|
|
#2
|
||||
|
||||
|
Sigo sin encontrar ningún contexto directo que se pueda aprovechar para ésto, y me parece una carencia (fallo) importante de Tasker.
Antaño ya comenté una posibilidad: Usa la app de la cámara como contexto para activar un perfil. La tarea de entrada puede obtener un "listado" de los archivos que hay en la carpeta de fotos mediante la acción Listar archivos, y meter ese listado en una variable. La tarea de salida hace lo mismo y mete el nuevo listado en otra variable. Si ambas variables son distintas, pones la variable 'tomafoto' a 1.
![]() Por último, se pueden combinar ambas estrategias. Por ejemplo, el segundo perfil puede estar activo solo mientras la app de la cámara está abierta, y puede estar chequeando cada 10 segundos (o cada segundo) en busca de fotos nuevas, para procesarlas de inmediato, sin esperar a que se cierre la app de la cámara. Yo diría que estos planteamientos no son nada elegantes, y además derrochan recursos, pero pueden servir como apaño en algunos casos. La eficiencia dependerá mucho de ciertos detalles como el número de fotos diarias (de media), la cantidad de veces que se abre la app de la cámara y se cierra sin haber hecho ninguna foto, etc. Sigo sin resolver el problema principal: un contexto que se pueda asociar directamente al disparo de la foto. Quizá algún compañero encuentre el truco, u otras estrategias laterales que sean tan validas como las que yo ofrezco.
__________________
Firmado: Caravantes, miembro del equipo que promueve el Subforo de Tasker
|
|
#3
|
||||
|
||||
|
Pues la primer idea que me viene a la cabeza, es monitorizar la carpeta que tengamos destinada a la cámara.
Luego, para detectar si lo que se tomó fue una foto, o video, simplemente agrega una acción de listar archivos según fecha de creación/modificación y obtén el último. A continuación podrás incluir las acciones que desees dentro de un condicional IF para extensiones de fotos. |
|
#4
|
||||
|
||||
|
Añado dos detalles que olvidé en mi mensaje anterior:
A) En los smartphones que yo he utilizado, las capturas de pantalla van a otro directorio/carpeta distinta. O sea que si hay que vigilar también las nuevas capturas de pantalla, hay que revisar las dos carpetas. B) En la carpeta de las fotos también suelen aparecer los vídeos grabados con la cámara. Si solo se quieren chequear las fotos, en la acción LISTA ARCHIVOS habrá que filtrar por la extensión, normalmente jpg.
__________________
Firmado: Caravantes, miembro del equipo que promueve el Subforo de Tasker
|
|
#5
|
||||
|
||||
|
Mi idea...
Código:
Profile: Nuevo Archivo Cámara
Event: File Modified [ File:DCIM/Camera/ ]
Enter: HTCMania - x (180)
A1: List Files [ Dir:DCIM/Camera Match:*.jpg Include Hidden Files:Off Use Root:Off Sort Select:Modification Date Variable:%temp1 Continue Task After Error:On ]
A2: Flash [ Text:%temp1(<) Long:On ]
|
| Gracias de parte de: | ||
|
#6
|
||||
|
||||
|
Antes de proponer el ejercicio ya había probado eso y, en mi caso, el evento de "Archivo modificado" ocasiona múltiples disparos del perfil. Uno Al abrir la app y un par con cada foto. El que me funciona perfectamente (una foto = un evento) es "Atributos de archivo modificados" poniendo como carpeta a vigilar "/sdcard/DCIM/Camera/".
__________________
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) |
|
#7
|
||||
|
||||
__________________
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) |
|
#8
|
||||
|
||||
|
EDITO Pero si también pensamos en los vídeos que ha comentado Caravantes la variable %FOTO ya no nos vale y tu planteamiento sí.
__________________
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) Última edición por WillyWeb Día 01/07/18 a las 14:16:16. |
|
#9
|
||||
|
||||
|
Traduzco a cristiano el perfil de Smart:
Código:
Perfil: Nueva foto (197) Evento: Archivo modificado [ Archivo:/storage/3831-6531/DCIM/Camera/ ] Entrada: Nueva foto (198) A1: Bip [ Frecuencia:8000 Duración:1000 Amplitud:50 Stream:3 ] A2: Listar archivos [ Directorio:/storage/3831-6531/DCIM/Camera Coincidir:*.jpg Incluir Archivos Ocultos:Apagado Usar Root:Apagado Ordenar por:Modification Date Variable:%fotos Continuar Tarea Tras Error:Encendido ] A3: Flash [ Texto:%fotos Largo:Apagado ] Prueba superada. SmartPhoneLover ![]() He añadido un BIP precisamente para detectar fácilmente cuándo se ejecuta la tarea, y es intantáneo. Aclaro que mi smartphone está configurado para guardar las fotos en la tarjeta SD, y es por eso que aparece un almacenamiento raro (/storage/3831-6531/DCIM/Camera/) Lo triste es que en el flash no me sale la lista de archivos, solo sale "%fotos" (el nombre de la variable que debería contener la lista de archivos). Seguro que es un fallo tonto que se puede arreglar.
__________________
Firmado: Caravantes, miembro del equipo que promueve el Subforo de Tasker
|
|
#10
|
||||
|
||||
|
Pues a mí me funciona bien. El perfil no se inmuta al abrir la cámara, y se ejecuta una vez tras disparar la foto. El efecto colateral que he encontrado es que este perfil también se dispara si voy a la galería y elimino alguna foto. Seguimos investigando.
__________________
Firmado: Caravantes, miembro del equipo que promueve el Subforo de Tasker
|
|
#11
|
||||
|
||||
|
Esa variable es un array. Si pones ... %fotos(<) ... verás el último elemento del array (el archivo más reciente).
__________________
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) |
|
#12
|
||||
|
||||
|
Eso lo puedes arreglar añadiendo tu app de cámara al perfil.
__________________
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) |
|
#13
|
||||
|
||||
|
Se me ocurre usar el mismo sistema para detectar cambios en x carpeta. Notas: - No hay intent en Android que lo detecte. - Referido a lo anterior, ya se ha agregado la propuesta a la web trace para que Joao añada esa funcionalidad, mediante el método FileObserver. |
|
#14
|
||||
|
||||
|
Claro que si. El perfil detecta cambios, pero no diferencia en qué tipi de cambio. Habrá que modificarlo para que sepa si se ha eliminado o añadido algún elemento. |
|
#15
|
||||
|
||||
|
__________________
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) |
|
#16
|
||||
|
||||
|
Añado dos detalles que olvidé en mi mensaje anterior:
A) En los smartphones que yo he utilizado, las capturas de pantalla van a otro directorio/carpeta distinta. O sea que si hay que vigilar también las nuevas capturas de pantalla, hay que revisar las dos carpetas. ![]() |
|
#17
|
||||
|
||||
|
Recapitulando:
Yo no esperaba que el evento ARCHIVO MODIFICADO fuese a detectar un archivo nuevo, porque los conceptos de MODIFICADO y NUEVO son sustancialmente distintos. De hecho, según dice Willy (#12) no le funciona al Taskero que le hizo la pregunta, y al propio Willy le funciona de forma anómala. La alternativa es ATRIBUTOS DE ARCHIVO MODIFICADOS, pero por similares razones puede que tampoco sea totalmente fiable. Creo que a mí me funcionan bien los dos, pero puede ser de milagrito / por los pelos / de casualidad, y no sabemos en qué condiciones (hard/soft) estos contextos funcionan o dejan de funcionar. Efectivamente, añadiendo un segundo contexto de APP - Cámara, se soluciona el problema de que el perfil se dispare al borrar (o modificar) fotos. La variable %FOTO a mí me funciona mal: no identifica el último archivo (la última foto) sino otro anterior, de hace varios días. Descartado. Para obtener la identificación de la última foto hay que jugar con la ordenación en LISTAR ARCHIVOS, y luego elegir el primer o último elemento del array. A mi me funciona bien el esquema siguiente. Perfil: Foto nueva (197) Evento: Archivo modificado [ Archivo:/storage/3831-6531/DCIM/Camera/ ] Aplicación: Cámara Entrada: Foto Nueva (198) A1: Bip [ Frecuencia:8000 Duración:1000 Amplitud:50 Stream:3 ] A2: Listar archivos [ Directorio:/storage/3831-6531/DCIM/Camera Coincidir: Incluir Archivos Ocultos:Apagado Usar Root:Apagado Ordenar por:Modification Date Variable:%fotos Continuar Tarea Tras Error:Encendido ] A3: Establecer variable [ Nombre:%FotoNueva A:%fotos(<) Recurse Variables:Apagado Calcular:Apagado Añadir:Apagado ] En la acción LISTAR ARCHIVOS, recomiendo no filtrar por *.JPG para que coja igualmente un posible archivo de vídeo cuya grabación haya disparado el perfil. Luego, la tarea puede utilizar la extensión para dar un tratamiento distinto a las fotos y a los vídeos (tal vez con los vídeos no haya que hacer nada). Si se filtra por *.JPG probablemente ocurra que al grabar un vídeo la tarea vuelva a procesar repetidamente el fichero de la foto que se hubiera tomado antes.
__________________
Firmado: Caravantes, miembro del equipo que promueve el Subforo de Tasker
|
| Gracias de parte de: | ||
|
#18
|
||||
|
||||
|
He intentado hacer un segundo perfil para que, al cerrar la cámara, Tasker me muestre la última foto tomada.
No encuentro la acción para mostrar foto, ni en el apartado Multimedia ni tampoco en el de Imagen. Ya sé que se podría hacer con una escena, pero buscaba una opción más sencilla e inmediata. Para los archivos de audio sí que hay una acción directa. ¿Estoy muy despistado o no hay una acción simple para mostrar una imagen por pantalla?
__________________
Firmado: Caravantes, miembro del equipo que promueve el Subforo de Tasker
|
|
#19
|
||||
|
||||
|
He intentado hacer un segundo perfil para que, al cerrar la cámara, Tasker me muestre la última foto tomada.
No encuentro la acción para mostrar foto, ni en el apartado Multimedia ni tampoco en el de Imagen. Ya sé que se podría hacer con una escena, pero buscaba una opción más sencilla e inmediata. Para los archivos de audio sí que hay una acción directa. ¿Estoy muy despistado o no hay una acción simple para mostrar una imagen por pantalla? ![]() Otra forma seria, por JF: Código:
A1: Variable Set [ Name:%temp To:RUTA_ARCHIVO Recurse Variables:Off Do Maths:Off Append:Off ]
A2: Java Function [ Return:temp Class Or Object:File Function:new
{File} (String) Param:%temp Param: Param: Param: Param: Param: Param: ]
A3: Java Function [ Return:%temp Class Or Object:Uri Function:fromFile
{Uri} (File) Param:temp Param: Param: Param: Param: Param: Param: ]
A4: Send Intent [ Action:android.intent.action.VIEW Cat:Default Mime Type:image/* Data:%temp Extra: Extra: Extra: Package: Class: Target:Activity ]
Última edición por SmartPhoneLover Día 01/07/18 a las 21:06:37. |
| Gracias de parte de: | ||
|
|
|
#20
|
||||
|
||||
|
__________________
Firmado: Caravantes, miembro del equipo que promueve el Subforo de Tasker
|
![]() |
Estás aquí
|
||||||
|
||||||