![]() |
|
| Tasker Para hablar de todo lo relacionado con la aplicación tasker |
«
Tema Anterior
|
Siguiente tema
»
|
|
Herramientas |
|
#1
|
||||
|
||||
|
Intent para enviar ficheros a Evernote
Hola. Estoy tratando de aprender a enviar intents desde Tasker a Evernote.
Hasta ahora enviaba esos datos mediante la app Email-Me-Pro pero ha dejado de funcionar correctamente, y he pensado que es preferible enviar la información directamente, sin intermediación de correo-e ni de terceras apps. He partido del post que hizo el compañero Malkair, sobre el tema http://www.htcmania.com/showthread.php?t=1150348 y también del Tutorial y recopilación de Intents que hizo Mlesir http://www.htcmania.com/showthread.php?t=773603 La parte buena es que he conseguido crear en Evernote notas nuevas con el texto que yo haya establecido o programado en Tasker. Esa nota nueva también debe añadir un icono o archivo gráfico, pero no encuentro la manera de hacer que el intent meta ese archivo a la nota creada (con Email-me-pro funcionaba de lujo). De momento estoy probando con el archivo Aspiradora.jpg que tengo ubicado en Fotos/Iconos. He preparado la siguiente acción... Código:
A1: Enviar Intent [Acción:com.evernote.action.CREATE_NEW_NOTE Categ.:None Tipo Mime:image/* Datos:Fotos/Iconos/Aspiradora.jpg Extra:android.intent.extra.TEXT: Texto-de-la-nota Extra:android.intent.extra.STREAM: Fotos/Iconos/Aspiradora.jpg Extra:QUICK_SEND:true Paquete:com.evernote Clase: Objetivo:Activity ] También he consultado alguna documentación en inglés: http://htnawsaj.tumblr.com/post/5622...ernote-actions https://dev.evernote.com/doc/article...id_intents.php https://www.reddit.com/r/tasker/comm...e_in_evernote https://gist.github.com/tyvsmith/6735496 ... pero no saco nada en claro. Sigo sin saber cómo configurar el intent para que meta un fichero en la nota creada en Evernote. Agradezco cualquier ayuda. |
|
|
|
#2
|
|
Hola Caravantes: no tengo Evernote para ayudarte.
No será la forma de especificar la ubicación del archivo. Extra:android.intent.extra.STREAM: Fotos/Iconos/Aspiradora.jpg En este enlace que tu pones https://dev.evernote.com/doc/article...id_intents.php habla de la posibilidad de adjuntar más archivos especificando la Uris, y más arriba en el intent SEND especifica esta forma de colocar donde está el archivo "file://path" Saludos |
| Gracias de parte de: | ||
|
#3
|
||||
|
||||
|
Cita:
He probado con android.intent.extra.STREAM: file://Fotos/Iconos/Aspiradora.jpgPuesto que mi Nexus5 no tiene tarjeta de memoria, otra forma de acceder a los archivos es... android.intent.extra.STREAM: file://storage/emulated/0/Fotos/Iconos/Aspiradora.jpgNada de esto ha funcionado. Tengo sin marcar la casilla CONTINUAR TAREA TRAS ERROR. O sea que en caso de que esta acción tropiece con algún error, la tarea queda detenida. Y, en la tarea, tengo una segunda acción del tipo FLASH %TIME que me muestra la hora. Esta acción flash funciona todas las veces que ejecuto la tarea, lo cual significa que en la acción anterior del intent no ha habido errores porque la tarea no se ha detenido. La acción funciona y la nota se crea siempre en Evernote, con el texto previsto, pero ni una sola vez consigo que incluya el archivo. Gracias nuevamente. Seguiré investigando. |
|
#4
|
|
Como bien comenta leromaro cualquier adjunto debe ir referenciado por su URI, pero creo que te falta una / (lleva tres y no dos, como tú has puesto).
Al margen de eso, en una búsqueda rápida sobre el tema de enviar un intent desde tasker a evernote para crear una nota con un fichero adjunto he dado con una conversación muy interesante... https://discussion.evernote.com/topi...e-to-the-note El usuario plantea al mismo problema que tú y a los pocos días se responde él mismo. Parece ser que Tasker tiene un "pequeño" problema a la hora de enviar intent con ficheros adjuntos. La solución que este usuario ha encontrado es construir el intent desde Java. En esta conversación de reddit explican como se hace... https://www.reddit.com/r/tasker/comm..._file_no_root Por cierto, en los comentarios de esa conversación también dicen que se puede solucionar con AutoShare... me he quedado aquí y no te puedo contar mucho más. |
|
#5
|
||||
|
||||
|
Cita:
android.intent.extra.STREAM: file:///Fotos/Iconos/Aspiradora.jpgY tampoco ha funcionado. Ya había leído que se podían hacer intents en lenguaje de programación. Creo que una ventaja de ese método es que puedes añadirle tantos EXTRAS como quieras. Desde Tasker solo tienes tres extras disponibles, que de momento estoy utilizando así: Extra:android.intent.extra.TEXT: Texto-en el cuerpo-de-la-nota Extra:android.intent.extra.STREAM: Fichero-a-adjuntar Extra:QUICK_SEND:true El tercer extra indicado (QUICK_SEND:true) es necesario para que la nota sea automáticamente guardada; si lo omito la nota se crea pero queda en modo de edición, esperando que yo la modifique y/o la guarde manualmente. O sea que, en realidad, solo tengo dos extras utilizables, y vendría bien alguno más para especificar el título de la nota, y las etiquetas de la misma, u otros detalles (autor, URL relacionada, etc). Como digo, creo que utilizando un lenguaje de programación se pueden añadir estos otros extras. Pero no me apetecía meterme en ese jardín porque me viene un poco grande lo del Java. Le dedicaré unas horas para ver si soy capaz de aprender a manejarlo. Con las pistas que me has dado voy un poco más orientado. Muchas gracias. Ya os contaré. |
|
#6
|
|
En esa conversación de reddit que te he comentado, además de explicar paso a paso todo lo que ha intentado, tienes ya hecha una tarea que soluciona el problema (eso dice el autor) y que te puedes descargar desde aquí...
https://mega.nz/#!xJgHxZST!Z7OkcL9T3...nCb22CDhXgH6Os ¿la has probado? |
| Gracias de parte de: | ||
|
#7
|
||||
|
||||
|
Cita:
Estoy en el trabajo y no puedo probarlo, quizá tarde un par de días en tener la ocasión de instalarlo en Tasker. De momento me he descargado ese archivo XML y me lo he enviado por correo-e, no siendo que desaparezca. Gracias de nuevo, ya os contaré. |
|
#8
|
||||
|
||||
|
Cita:
Código:
Intent-a-Evernote (94)
A1: Java Function [ Devolver:theIntent Class Or Object:Intent Función:new
{Intent} () Param:Intent.ACTION_SEND Param: Param: Param: Param: Param: Param: ]
A2: Java Function [ Devolver: Class Or Object:theIntent Función:setAction
{Intent} (String) Param:android.intent.action.SEND Param: Param: Param: Param: Param: Param: ]
A3: Java Function [ Devolver: Class Or Object:theIntent Función:setType
{Intent} (String) Param:application/zip Param: Param: Param: Param: Param: Param: ]
A4: Java Function [ Devolver:parsedurl Class Or Object:Uri Función:parse
{Uri} (String) Param:file:///sdcard/Download/%EXFILENAME Param: Param: Param: Param: Param: Param: ]
A5: Java Function [ Devolver: Class Or Object:theIntent Función:putExtra
{Intent} (String, Parcelable) Param:android.intent.extra.STREAM Param:parsedurl Param: Param: Param: Param: Param: ]
A6: Java Function [ Devolver: Class Or Object:theIntent Función:addFlags
{Intent} (int) Param:theIntent.FLAG_ACTIVITY_FORWARD_RESULT Param: Param: Param: Param: Param: Param: ]
A7: Java Function [ Devolver: Class Or Object:theIntent Función:addFlags
{Intent} (int) Param:theIntent.FLAG_ACTIVITY_NEW_TASK Param: Param: Param: Param: Param: Param: ]
A8: Java Function [ Devolver: Class Or Object:CONTEXT Función:startActivity
{} (Intent) Param:theIntent Param: Param: Param: Param: Param: Param: ]
A9: Barra de estado [ Establecer:Colapsado ]
Ahora toca estudiarlo con calma para ver si llego a entender mínimamente el funcionamiento de esto porque nunca he estudiado o utilizado Java. Os copio una pantalla para que veáis el aspecto que tiene. Acción4.jpg |
| Gracias de parte de: | ||
|
#9
|
|
muy interesante.....esto se escapa ya a mis posibilidades pero me interesa mucho el resultado final.....a mi también hace mucho tiempo que email me pro no me funciona bien, y dentro de unos días se me acaba el año de suscripción gratuita a Evernote premium que conseguí con Movistar.....por lo que cuando vuelva a la suscripción básica se me limita a cinco correos electrónicos al día de manera automática.......
Esperando ver si se consigue algún resultado! |
|
#10
|
|
La descripción de la tarea no coincide exactamente con las explicaciones que dan en la conversación de reddit, pero en esencia es lo mismo.
Tal y como está la tarea tienes que colocar un archivo (foto, por ejemplo) en la carpeta "Download" de la memoria del terminal y antes de todas esas acciones tienes que establecer la variable %EXFILENAME con el nombre de ese archivo (sin rutas ni nada). Darle al PLAY y cruzar los dedos. |
|
#11
|
||||
|
||||
|
Bueno pues me pongo a la labor de probar esta tarea que he descargado/importado, y ver si soy capaz de adaptarla en alguna medida para mis necesidades.
Primer ajuste. Modifico la acción número 4 para cambiar la referencia al fichero adjunto (file:///sdcard/Download/%EXFILENAME) por la mía. Como ya he dicho, de momento estoy probando con el siguiente fichero: file:///Fotos/Iconos/Aspiradora.jpg También modifico la acción 3, cambiando el parámetro "application/zip" por "image/jpg", que corresponde al tipo de fichero que yo uso. Al ejecutar la tarea, Android me pregunta con cuál app quiero compartir, y tengo que elegir entre toda la lista de apps que hay en mi smartphone. Elijo EVERNOTE (por una vez). A continuación se abre el Evernote y me muestra la pantalla para crear/escribir una nota nueva, nota que aparece sin contenido alguno (ni título, ni cuerpo, ni fichero adjunto, nada). Cierro sin escribir nada en la nota y Evernote me informa de que la nota es descartada porque no admite notas "vacías". Es interesante que Android me pregunte por la app que hay que usar. Efectivamente, la tarea no indica en ningún momento que este intent esté dirigido a Evernote, cosa que yo sí tenía bien resuelta al principio de este hilo, con la acción ENVIAR INTENT, de Tasker. Segundo ajuste. Veamos si puedo hacer que no me pregunte por la app de destino. En la acción 2 (setAction), cambio "android.intent.action.SEND" por lo que yo tenía al comienzo del hilo: "com.evernote.action.CREATE_NEW_NOTE". Al ejecutar la tarea, efectivamente, ya no me pregunta cuál app hay que usar. Pero tampoco he avanzado nada porque aparece un error general de Android diciendo: "Se ha detenido la aplicación Evernote", con opciones para INFORMAR y ACEPTAR. Para esquivar este problema, deshago la modificación recién realizada en el paso anterior (Segundo ajuste. Acción 2), y así vuelvo a la situación que tenía tras el primer ajuste. Trato de continuar por otro lado: ¿Podré al menos especificar el texto en el cuerpo de la nota? Esto era algo que también tenía resuelto al comienzo del hilo, mediante la especificación "Extra:android.intent.extra.TEXT: Texto-de-la-nota". Miro las acciones de esta tarea y creo que lo más parecido es la acción A5, que incluye "android.intent.extra.STREAM". Duplico la acción A5 (obtengo A5 y A6, iguales). Modifico A6 para tratar de encajar ahí aquello que me funcionaba para el texto de la nota. Las dos acciones quedan así: A5: Java Function [ Devolver: Class Or Object:theIntent Función:putExtra {Intent} (String, Parcelable) Param:android.intent.extra.STREAM Param:parsedurl Param: Param: Param: A6: Java Function [ Devolver: Class Or Object:theIntent Función:putExtra {Intent} (String, Parcelable) Param:android.intent.extra.TEXT Param:Texto-de-la-nota Param: Param: Param: Al ejecutar la tarea, Android vuelve a preguntarme cuál app quiero usar, como es lógico (elijo Evernote, por una vez); y a continuación llego de nuevo a la pantalla para crear una nota nueva, en la que no tengo texto en el cuerpo, ni fichero adjunto, ni nada. Pues tampoco he avanzado por este otro lado. Concluyo que estoy dando palos de ciego, y desisto. El asunto parece ser más complejo de lo que yo esperaba. Por otro lado, indicios como que la tarea ni siquiera establece a cuál app va dirigido el intent... me hacen sospechar que esta tarea no está afinada, quizá incluso tenga alguna otra particularidad y puede que la tarea solo funcione en el smartphone del tipo que la ha creado. |
|
#12
|
|
La ruta que has usado para tu archivo es incorrecta. Debe incluir todo el path desde la raíz.
El objetivo de la tarea es hacer lo que Tasker no hace correctamente, enviar un adjunto en un intent. Que te pregunte por la aplicación que tiene que gestionar ese intent es normal puesto que lo que hace la tarea es enviar un mensaje al sistema diciendo "quiere enviar un archivo con una aplicación, ¿quién se hace cargo de esto?". Cuando soluciones lo de la ruta a tu archivo repite tu primera prueba pero esta vez rellena la nota para ver si se completa el envío. |
|
#13
|
||||
|
||||
|
Cita:
No entiendo por qué dices que la ruta está incompleta; yo creo que está bien e incluye todo el path. Acabo de hacer otra prueba para verificarlo: Pruebas (72)Y ésto funciona perfectamente: se abre el archivo. Creo que la única diferencia es que en el intent hay que ponerlo en formato URI, precedido por "file:///" ¿O me estoy perdiendo algo? Ahora que lo pienso... cuando dices TODO EL PATH DESDE LA RAIZ... ¿te estas refiriendo a "file:///mnt/user/0/primary/Fotos/Iconos/Aspiradora.jpg" ? Joer, pues acabo de probar ésto y resulta que sí funciona. El fichero aparece en la nota creada por Evernote. Supongo que este tipo de path requiere Root, que sí lo tengo... pero preferiría otro sistema más sencillo. Se me ocurre probar también con file:///sdcard/Fotos/Iconos/Aspiradora.jpg y también funciona. Bien, asunto resuelto en este detalle: el fichero adjunto es enviado a Evernote. Ahora entiendo por qué decías que yo tenía el path incompleto. Gracias nuevamente. [Vuelvo a probar la acción de Tasker ENVIAR INTENT con este formato de path y no funciona] Cita:
A) Que en Tasker se pueda establecer el texto de la nota a crear. Ayer hice un torpe intento y no funcionó. También sería importante que se pudiera indicar el título de la nota y las etiquetas. B) Que la nota se cree automáticamente sin que yo necesite completarla y/o confirmarla manualmente. Con la tarea actual, Evernote se abre y me muestra la pantalla de edición de notas con una nota nueva que incluye el fichero. Manualmente, yo tengo que cerrar esa pantalla de edición para que la nueva nota sea guardada, y esta operación manual también es un problema. C) que Android sepa dirigir el intent hacia Evernote sin preguntarme. Haber resuelto el problema del fichero adjunto no me va a servir de nada si no consigo resolver también (como mínimo) los problemas A y B, imprescindibles. El último detalle (C que Android sepa dirigir el intent hacia Evernote sin preguntarme) podría ser menos crítico porque en último caso, cuando Android me pregunta que app debe recoger el intent yo podría responderle que lo haga SIEMPRE Evernote, con lo cual no volvería a hacerme esa pregunta. Con esta estrategia puede surgir otro problema posterior: tal vez en el futuro yo quiera enviar intents hacia otra app distinta, y Android los enviaría todos hacia Evernote. |
|
#14
|
|
Ya veo que finalmente te has dado cuenta de a qué me refería con lo de "path completo". En Tasker te funciona un path "incompleto" porque Tasker considera que cualquier path incompleto es relativo a la raíz del almacenamiento interno (eso dice la documentación y así parece que funciona).
La acción de enviar intent de tasker no es más que un atajo "simplificado" a esas instrucciones java que tiene esa tarea. Con los ajustes adecuados deberías poder dirigir el intent a la aplicación que quieras exactamente igual que lo haces con la acción de tasker. Y lo mismo es aplicable al los parámetros "extra" que pones en la acción y que podrías poner exactamente igual en esa tarea. |
| Gracias de parte de: | ||
|
#15
|
||||
|
||||
|
No he conseguido avanzar más con el tema (Intent para enviar ficheros a Evernote, añadiendo también título, cuerpo y etiqueta). En posts anteriores ya he explicado las dificultades, que no consigo superar.
Así pues he dado un paso atrás para volver a poner en servicio el sistema que estaba utilizando anteriormente: enviar un mensaje de correo a mi cuenta de Evernote, a través del plugin Email Me Pro. Con eso se crea la nota en el servidor de Evernote, automáticamente, con su título, cuerpo, etiqueta(s) y fichero adjunto. Los inconvenientes de este sistema son dos: - La transmisión del correo necesita que el smartphone tenga conexión a Internet. Cuando estoy sin conexión, Email Me Pro deja pendiente la transmisión y la reintenta cuando vuelve a haber conexión. Así, la nota creada lleva fecha (de creación) del momento en que el servidor de Evernote recibe el mensaje, que puede ser significativamente posterior al momento en que Tasker ordenó a Email Me Pro que enviara el mensaje. Esto es un poco de problema cuando son importantes las secuencias cronológicas y los tiempos. - Teniendo en el smartphone Tasker y Evernote, es una pena no saber hacer la comunicación directa entre ambas aplicaciones. Es un derroche de recursos utilizar el correo electrónico para comunicar dos apps que están en el mismo dispositivo. Pero el sistema de correo electrónico tiene sus ventajas; la principal es que Evernote tiene perfectamente estandarizado el método para crear notas a partir de mensajes de correo recibidos. Y eso incluye opciones tan interesantes como añadir etiquetas para la nota a crear, o crear esa nota en una libreta distinta a la habitual. Todo ello está explicado en Consejo rápido: Envía tus correos electrónicos a Evernote https://blog.evernote.com/eslatam/20...co-a-evernote Respecto al uso de Email Me Pro, he heecho un post que explica detalladamente cómo utilizarlo, en http://www.htcmania.com/showthread.php?t=1208618 De todas formas, este hilo queda abierto como una invitación para añadir comentarios sobre el tema de enviar Intents a Evernote. Ojalá pronto aprendamos a hacerlo bien. |
| Gracias de parte de: | ||
| Respuesta |
Estás aquí
|
||||||
|
||||||
«
Tema Anterior
|
Siguiente tema
»
|
|
Hora actual: 17:02:17 (GMT +1)
HTCMania: líderes desde el 2007






