|
||
|
![]() |
![]() |
Tasker Para hablar de todo lo relacionado con la aplicación tasker |
![]() |
|
Herramientas |
#1
|
||||
|
||||
Sqlite embebido en Tasker. Alguien ha podido hacerlo funcionar?
Pues eso, he probado con consultas simples a varias bases de datos con distintas opciones y no he logrado nada!
Por otra parte el botón de ayuda no dice nada al respecto porqué seguramente Pent aún no actualizado el fichero de ayudas… Sería de gran utilidad porque podríamos usar tareas de Tasker con consultas Sqlite sin necesidad de rotear el movil… Enviat des del meu Nexus 5 usant Tapatalk
__________________
Me apasiona volar, pero con los pies en el suelo...
|
Gracias de parte de: | ||
|
#2
|
||||
|
||||
Te refieres a la acción SQL Query?
No la probé pero seguro que funciona. Intenta algo simple como un evento de calendario. Recuerda que la ayuda solo se actualiza en inglés prácticamente. O cambias el idioma a inglés en las preferencias un momento con "Always View Help Online" o mira en la web. |
Los siguientes 2 usuarios han agradecido a GraphicAdventure su comentario: | ||
#3
|
||||
|
||||
Digamos que el modo de consulta para que no requiera acceso root, es "URI formatted"
Por ejemplo, para acceder a la DB de los contactos, pongo en URI lo siguiente; content://com.android.contacts/contacts En el resto de apartados; Columns, escribe la columna que quieras obtener. Puedes poner varias separadas por comas. Selection, basándote en el lenguaje nativo de sql, escribe lo que quieres que coincida con la comuna selecciona, para obtener únicamente los que cumplan esa condición. Selection Parameters Ni idea. Orden by, como su nombre indica, ordenar por.. indica la comuna que quieras que establezca el orden. Output column divider, en caso de que quieras obtener varias columnas, indica el separador que quieres que se muestre. Por defecto es una coma. El resto de Modos, no los controlo. El problema, es que no se extrapolar lo que indico en el apartado URI, a otras bases de datos, ya que no es exactamente la ruta, como se indica cuando escribimos código sql. Un saludo. Última edición por Rsc Día 09/01/17 a las 01:08:17. |
Los siguientes 2 usuarios han agradecido a Rsc su comentario: | ||
#4
|
||||
|
||||
Muchas gracias a ambos!
El uso es para Bd propias, por tanto no necesitaré que el dispositivo receptor tenga root… Mañana me entretendré un rato a ver si lo consigo. Gracias de nuevo compañeros! Enviat des del meu Nexus 5 usant Tapatalk
__________________
Me apasiona volar, pero con los pies en el suelo...
Última edición por cace0353 Día 08/01/17 a las 20:35:45. |
#5
|
||||
|
||||
De nada, y el que entienda la relación de lo que se pone en URI, con la ruta de la base de datos, si tiene un hueco que lo explique. Que lo consulte en el hilo de la beta de Tasker, pero Pent se hizo el sueco
|
Gracias de parte de: | ||
#6
|
||||
|
||||
No lo he probado pero respecto al nuevo sistema pensaba que permitiría usar consultas a pelo en lugar de desglosarlo en parámetros, lo que creo que puede dificultar bastante o hacer imposible consultas complejas. Mucho mejor el sistema de siempre mientras siga funcionando. |
Los siguientes 3 usuarios han agradecido a danko9696 su comentario: | ||
#7
|
||||
|
||||
He encontrado esta información, pero sigo sin tener ni idea de como obtener la URI de una base de datos que creemos nosotros mismos.
Normalmente la estructura de una URI de contenido está dividida en tres partes significativas como se ve en el siguiente ejemplo: URI de contenido para los contactos de Android Esquema: La cadena “content://” es una constante para establecer que el origen de datos vendrá de un Content Provider. autoridad: Es una cadena única que identifica al Content Provider para su uso. Cuando creas tus propios Content Providers normalmente se recomienda usar el nombre del paquete al que pertenece para diferenciarlos de los demas. ruta: Es un conjunto de segmentos separados por barras oblicuas (‘/’) que guían al Content Resolver hacia la ubicación lógica de los datos dentro del Content Provider. id: Identificador numérico (en la mayoría de los casos es la llave primaria) asociado a un solo registro que se encuentra en la ruta establecida del Content Provider. Es muy útil cuando deseamos acceder a una sola fila. Como ves, el uso de URIs de contenido te facilita todo el trabajo a la hora de acceder a la información de otras aplicaciones, evitándonos el desarrollo de mecanismos complejos. Esta es la razón por la cual se le denomina Resolutor de Contenido a este objeto, ya que es el encargado de parsear la URI y darse a la búsqueda de la información. ¡Una grandiosa labor! Página con la información completa aquí: http://www.hermosaprogramacion.com/2...os-de-android |
Los siguientes 2 usuarios han agradecido a Rsc su comentario: | ||
#8
|
||||
|
||||
https://developer.android.com/guide/...tml#ContentURI
Por lo que leo aquí para una base de datos tuya el URI será el nombre del paquete/"tabla o archivo" sin extensión. En el archivo AndroidManifest.xml registras tu proveedor de contenido. Entiendo que esto es lo que quieres buscar: nombre, teléfono, ... |
Gracias de parte de: | ||
#9
|
||||
|
||||
Parece que se ha destapado el tarro de las esencias...
Pero esto ha subido mucho de nivel y ahí me quedo fuera, no llego, lo siento. Yo sólo pretendia hacer consultas a bases de datos propias, o fabricadas a partir de tablas de Excel, desde mis tareas echando mano de la velocidad que, para estos menesteres, nos da Sqlite. Un caso concreto: Para obtener los códigos INE a partir del código postal (para luego sacar la previsión metereológica de la web de Aemet) uso una base de datos "CODIS_METEO.db" con una sola tabla "CODIS" con dos columnas: una con los códigos postales (columna "POSTAL") y la otra con el correspondiente código INE (columna "CODI"). Ahora lo hago con una acción Ejecutar Consola: Sqlite3 CODIS_METEO.db "SELECT CODI FROM CODIS WKERE POSTAL LIKE '%postal' " y funciona divinamente... Pero esto obliga a tener Sqlite3 instalado en System>Xbin... y para llegar ahí hay que se usuario root! La consulta con la acción SQL Query la planteo en el modo Raw: como archivo pongo: CODIS_METEO.db en Consulta : SELECT CODI FROM CODIS WKERE POSTAL LIKE '%postal' Selection parameters: Output column divider: Matriz de variables: %codine Usan Root: desactivado La consulta me devuelve %codine (el literal) sea cual sea el valor que haya dado a %postal (naturalmente he usado valores conocidos de CP...) Que hago mal?
__________________
Me apasiona volar, pero con los pies en el suelo...
|
#10
|
||||
|
||||
No he probado porque para lo que yo necesitaba (acceder a datos de apps) era imprescindible root sí o sí, pero si no me equivoco puedes tener sqlite en cualquier sitio, solo que si no está en xbin entonces debes indicar siempre la ruta completa, similar al uso de path en msdos. De hecho, cuando estaba con el problema de ejecutarlo en 64 bit una de las posibilidades era usar el sqlite propio de Titanium Backup, usando la ruta especifica hasta él.
|
Los siguientes 2 usuarios han agradecido a danko9696 su comentario: | ||
#11
|
||||
|
||||
No he probado porque para lo que yo necesitaba (acceder a datos de apps) era imprescindible root sí o sí, pero si no me equivoco puedes tener sqlite en cualquier sitio, solo que si no está en xbin entonces debes indicar siempre la ruta completa, similar al uso de path en msdos.
![]() /sdcard/Tasker/sqlite3 nombre de la base de datos "consulta" y no me ha funcionado... Creo que lo más simple para que la tarea rule sin root va a ser prescindir de Sqlite y resolverlo exportando la BD a un CSV y mediante un "Leer Archivo" y 2 "Separar variable" extraer el código INE. No será tan rápido pero sí mas sencillo... Gracias por vuestro interés de todos modos. Seguiré el hilo para intentar aprender y subir otro peldaño...
__________________
Me apasiona volar, pero con los pies en el suelo...
|
#12
|
||||
|
||||
En la acción SQL Query tienes 3 modos, el Raw es usar Sqlite puro.
Intenta el Formatted e indica la ruta completa del archivo /storage/sdcard0/tucarpeta/codis_meteo.db Pon la tabla, columna y matriz de variables (array) para ver si sin especificar datos funciona. Prueba en la tarjeta interna sin root y con root. Última edición por GraphicAdventure Día 09/01/17 a las 20:34:25. |
Gracias de parte de: | ||
#13
|
||||
|
||||
Gracias por tú interés @GraphicAdventure,
He probado el modo "formatted" indicando la ruta /storage/emulated/0/Tasker/CODIS_METEO.db y sigue devolviendo la variable vacia. Curiosamente Tasker, una vez ejecutada la tarea, corrige la ruta acortándola á Tasker/XODIS_METEO.db Probado con root, sin root, con filtros y sin filtros… siempre devuelve solamente el nombre de la variable de salida %codine Por cierto, mi Nexus 5 sólo tiene SD interna. Enviat des del meu Nexus 5 usant Tapatalk
__________________
Me apasiona volar, pero con los pies en el suelo...
|
#14
|
||||
|
||||
Última edición por GraphicAdventure Día 09/01/17 a las 22:03:31. |
Los siguientes 2 usuarios han agradecido a GraphicAdventure su comentario: | ||
#15
|
||||
|
||||
J..er! es verdad!. Estaba acostumbrado a que devolviera la salida como una variable y luego separar por el salto de linea…
Ahora probaré con filtros… Gracias mil! PD: Correcto, también con filtros y teniendo en cuenta que devuelve un array. Aquí estaba el error, no funciona como sqlite puro…! Enviat des del meu Nexus 5 usant Tapatalk
__________________
Me apasiona volar, pero con los pies en el suelo...
Última edición por cace0353 Día 09/01/17 a las 22:13:57. |
Gracias de parte de: | ||
#16
|
||||
|
||||
Un saludo. |
#17
|
||||
|
||||
No, colega, funciona sin root! Recuerda que desde el principio, cuando abrí el post, la idea era poder ejecutar consultas Sqlite a bases de datos propias sin usar root, para prescindir del roteo en el dispositivo receptor... De momento solo lo he aplicado en un proyecto. Tengo en una base de datos una tabla CODIS con 14.690 registros y solo dos columnas: POSTAL y CODI. Para cada código postal hay un código INE que és el que utilizo poara consultar la prevision metereológica en la web de AEMET. Con un solo WHERE poniendo en Selection el nombre de la columna y el valor de la variable que debia buscar asi: Modo: Formatted Archivo: CODIS_METEO.db (está en la raiz de la Sdcard...) Table: CODIS (el nombre de la tabla donde se realizará la búsqueda) Columns: CODI (la columna que contiene los datos de salida...) Selection: POSTAL = %codi_postal (este és el WHERE, siendo POSTAL el nombre de la columna y %codi_postal el nombre de la variable que debia buscar Selection parameters: Order By: Output Column Divider: Matriz de Variables: %codi_ine (esta és la matriz que recoge los datos de salida de la consulta...) Usar Root: El problema que tenia és que la consulta en este modo directo devuelve una matriz (array) ya formada. En cambio Sqlite puro devuelve una variable con los resultados hallados separados por lineas. Luego con una acción "Separar Variable" con el salto de línea me "fabricaba" la matriz.
__________________
Me apasiona volar, pero con los pies en el suelo...
|
Gracias de parte de: | ||
#18
|
||||
|
||||
Justo antes de ayer estuve mirando la api de aemet, y salí loco con los codigos INE. Mi idea era hacer un perfil que según tu ubicación, te de el tiempo. Y al final me busqué los datos de otra página, openweathermap.org, que tiene modalidad gratis también, y puedes hacer consultas por latitud y longitud, sin tener que andar liado con codigos INE de esos
__________________
Tutorial sobre el mundo de las roms GNexus
Las OTA's llevan a la ira, la ira lleva al flaseo, el flaseo lleva al lado oscuro de Android. |
Gracias de parte de: | ||
#19
|
||||
|
||||
@cace0353 cojonudo, funciona! Me había cerrado en banda, con el modo URI Formatted, que es el que me funcionaba para los contactos, y como ya comenté, los otros modos, como en este caso "Formatted" , no los controlaba.
Me va a venir muy bien, porque estaba haciendo una app, para mí y unos amigos, para una liga que estamos haciendo de un juego de fútbol, y al ver que no conseguía hacer una tabla SQL, estaba metiendo los datos en un archivo.txt, para luego extraer lo que me interesase con el comando grep... Bueno, un follon en general, esto me va a facilitar muchísimo la labor. Lo dicho, gracias y un saludo. Edito: Una cosa mas, para meter datos en la tabla, se puede hacer con el método nativo de SQL? Última edición por Rsc Día 26/01/17 a las 13:04:11. |
Gracias de parte de: | ||
|
#20
|
||||
|
||||
Claro, la Bd la puedes usar sea qual sea el método usado para crearla…
Me alegra que te haya funcionado, colega! Enviat des del meu Nexus 5 usant Tapatalk
__________________
Me apasiona volar, pero con los pies en el suelo...
|
Gracias de parte de: | ||
![]() |
![]() |
||||||
|