|
||
|
![]() |
![]() |
Tasker Para hablar de todo lo relacionado con la aplicación tasker |
![]() |
|
Herramientas |
#1
|
||||
|
||||
Comandos para ejecutar consola (Aporte)
Hola amigos Taskerianos!
Abro este hilo para aportar los comandos para ejecutar consola que he ido encontrando aquí y allá. Es lo menos que puedo hacer en agradecimiento a toda la ayuda recibida. Allá vamos! am kill (package name)- mata la aplicación. am force-stop (package name) :fuerza detención de la app. am force-on (package name) :la pone en marcha input keyevent 26 :apaga/enciende pantalla. settings put global airplane_mode_on 0; am broadcast -a android.intent.action.AIRPLANE_MODE --ez state false :apagar modo avion. settings put global airplane_mode_on 1; am broadcast -a android.intent.action.AIRPLANE_MODE --ez state true :encender modo avión. pm disable (package name) :congela la aplicación. pm enable (package name) :descongela la aplicación. input keyevent 4 :como si le dieras al botón atrás. cat /proc/meminfo : muestra memoria. /system/bin/screencap /sdcard/Tasker/test.jpg :captura pantalla. settings put global low_power 1 : modo ahorro batería on settings put global low_power 0 :modo ahorro batería off Por supuesto, podéis aportar los vuestros para ir ampliando la información. Nos vemos! ![]() Edito: Antes de ejecutar nada, recomiendo que busquéis el comando por la red y os aseguréis de que realmente hace lo que he dicho. Yo los he probado todos y he tenido 0 problemas. Última edición por Mitrhandir Día 24/02/16 a las 19:26:19. |
Los siguientes 5 usuarios han agradecido a Mitrhandir su comentario: | ||
|
#2
|
||||
|
||||
Buen aporte, compañero.
Pero pienso (y sugiero a los moderadores del foro) que seria bueno tener un hilo específico para postear/recoger información de aportes que se van haciendo y que pudiesen entrar en una descripción como "Instrucciones y comandos en otros lenguajes utilizables en Tasker en el grupo de acciones Código" Recientemente he podido comprobar que se pueden hacer muchas cosas con JavaScript y que se acelera mucho el tiempo de ejecución. Saludos
__________________
Me apasiona volar, pero con los pies en el suelo...
|
Los siguientes 2 usuarios han agradecido a cace0353 su comentario: | ||
#3
|
||||
|
||||
Hola! Realmente lo he abierto por eso mismo compañero. Porque si buscas en Google, no hay una definición y/o ubicación clara y precisa para rebuscar y encontrar ese comando de que "habías oído hablar" y no encontrabas por ningún lado. El del modo avión por ejemplo, fue una alegría encontrarlo!
Así que, animo a los amigos Taskerianos a que aporten sus comandos! Un saludo! |
#4
|
||||
|
||||
Buenas en este hilo que abrí hace tiempo tenéis información relacionada con el comando input
http://www.htcmania.com/showthread.php?t=953071 |
Gracias de parte de: | ||
#5
|
||||
|
||||
Gracias por tu aporte compañero! No me queda muy claro para qué sirven, pero investigaré! (mi inglés es pésimo)
Saludos! |
#6
|
||||
|
||||
Pero pienso (y sugiero a los moderadores del foro) que seria bueno tener un hilo específico para postear/recoger información de aportes que se van haciendo y que pudiesen entrar en una descripción como "Instrucciones y comandos en otros lenguajes utilizables en Tasker en el grupo de acciones Código"
![]() NOTICIAS SOBRE TASKER ; sugerencias y comentarios sobre este foro http://www.htcmania.com/showthread.php?t=564246 Ahí acabo de escribir un post invitando a dialogar sobre ese asunto. Os doy el enlace directo al post que he escrito: http://www.htcmania.com/showthread.p...2#post22192482
__________________
Firmado: Caravantes, miembro del equipo que promueve el Subforo de Tasker
Última edición por Caravantes Día 25/02/16 a las 12:45:05. |
#7
|
||||
|
||||
Comandos Sqlite3
Tengo un par de consultas referentes a los comandos de consola usando Sqlite3
Estoy aprendiendo a manejar mis bases de datos con este gestor de DB y veo que la velocidad de proceso es la leche....! En realidad este post nace en una observación de manejo de base de datos que me hizo @danko9696 en un post mio de esta semana sobre la consulta, a nivel básico, de los datos de una tabla Excel desde Tasker: http://www.htcmania.com/showthread.php?t=1152543 He transformado mi base de Excel en una base .sq, y, desde Tasker con una acción ejecutar consola>sqlite y el comando: sqlite3 /sdcard/Download/AjuntamentsBD-1.db "SELECT POBLACIO FROM POBLES_CAT" me guarda en la variable %nombres la lista de poblaciones (columna POBLACIO). - El primer problema es que me devuelve una lista con los nombres en filas (comprobado con un flash) y quiero convertir la variable %nombres en una matriz usable en una escena como variable de un elemento Menú En concreto se refiere a la sintaxis de la expresión: Código:
- IMPORTANTE para el uso con tasker, si la consulta devuelve más de una fila muy recomendable añadir lo siguiente después de la última comilla: |awk '{printf("%s%v_char_separacion",$0)}' por ej, sqlite3 ...ruta bd y archivo... "SELECT .... FROM ... WHERE ... " |awk '{printf("%s%v_charsplit",$0)}' Esto hace que cada fila esté separada por el caracter que queramos (%v_charsplit). Yo normalmente uso alguno raro, como el símbolo del yen o del estilo, algo que creas que no va a aparecer en el texto ni de casualidad. Como lo escribiriais? - La segunda questión es como "rescatar" los valores de los distintos campos (columnas) de la tabla una vez haya elegido en el menú (con %tap_label) una población? Cual seria la secuencia de comandos en este caso y como deberia "splitar" el resultado? Gracias por vuestra ayuda.
__________________
Me apasiona volar, pero con los pies en el suelo...
|
Gracias de parte de: | ||
#8
|
||||
|
||||
-Separa tu variable con los datos (%nombres) usando como separador %newline.
__________________
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) |
Los siguientes 2 usuarios han agradecido a WillyWeb su comentario: | ||
#9
|
||||
|
||||
Me respondo a la segunda pregunta:
SELECT POBLACIO, C_POSTAL, COMARCA, PROVINCIA, DOMICILI, TELEFON, HABITANTS FROM POBLES_CAT WHERE POBLACIO= '%tap_label'
__________________
Me apasiona volar, pero con los pies en el suelo...
|
Gracias de parte de: | ||
#10
|
||||
|
||||
Tengo un par de consultas referentes a los comandos de consola usando Sqlite3
Estoy aprendiendo a manejar mis bases de datos con este gestor de DB y veo que la velocidad de proceso es la leche....! En realidad este post nace en una observación de manejo de base de datos que me hizo @danko9696 en un post mio de esta semana sobre la consulta, a nivel básico, de los datos de una tabla Excel desde Tasker: http://www.htcmania.com/showthread.php?t=1152543 He transformado mi base de Excel en una base .sq, y, desde Tasker con una acción ejecutar consola>sqlite y el comando: sqlite3 /sdcard/Download/AjuntamentsBD-1.db "SELECT POBLACIO FROM POBLES_CAT" me guarda en la variable %nombres la lista de poblaciones (columna POBLACIO). - El primer problema es que me devuelve una lista con los nombres en filas (comprobado con un flash) y quiero convertir la variable %nombres en una matriz usable en una escena como variable de un elemento Menú En concreto se refiere a la sintaxis de la expresión: Código:
- IMPORTANTE para el uso con tasker, si la consulta devuelve más de una fila muy recomendable añadir lo siguiente después de la última comilla: |awk '{printf("%s%v_char_separacion",$0)}' por ej, sqlite3 ...ruta bd y archivo... "SELECT .... FROM ... WHERE ... " |awk '{printf("%s%v_charsplit",$0)}' Esto hace que cada fila esté separada por el caracter que queramos (%v_charsplit). Yo normalmente uso alguno raro, como el símbolo del yen o del estilo, algo que creas que no va a aparecer en el texto ni de casualidad. Como lo escribiriais? - La segunda questión es como "rescatar" los valores de los distintos campos (columnas) de la tabla una vez haya elegido en el menú (con %tap_label) una población? Cual seria la secuencia de comandos en este caso y como deberia "splitar" el resultado? Gracias por vuestra ayuda. ![]() - Asignar %v_charsplit a ¥ (he puesto ese nombre de variable pero lo puedes adaptar a tu gusto, también puedes usar una variable global). - Ejecutar shell: ... "SELECT nompob,cp FROM POBLACIONES LIMIT 3" |awk '{printf("%s%v_charsplit",$0)}' o "SELECT nompob,cp FROM POBLACIONES LIMIT 3" |awk '{printf("%s¥",$0)}', pero prefiero usar variable población1|cp1¥población2|cp2¥población3|cp3 A partir de ahí espliteas primero por %v_charsplit (o ¥/lo que sea directamente), de modo que ya tienes las filas en un array que puedes meter en un bucle, y luego dentro del bucle espliteas con tubería, que es el usado por defecto los campos (caracter ´|´, altgr+1 normalmente). |
Los siguientes 2 usuarios han agradecido a danko9696 su comentario: | ||
#11
|
||||
|
||||
A partir de ahí espliteas primero por %v_charsplit (o ¥/lo que sea directamente), de modo que ya tienes las filas en un array que puedes meter en un bucle, y luego dentro del bucle espliteas con tubería, que es el usado por defecto los campos (caracter ´|´, altgr+1 normalmente).
![]() Veo que con Sqlite3 has puesto en mi caja de herramientas para programación de bricolage otro utensilio muy útil y potente. Hace algún tiempo @mlesir ya me lo aconsejó, pero googleando me parecia demasiado complicado y de entrada no valoré adecuadamente su sugerencia. Una vez metido con estas cuatro cosas elementales ya no me parece tan críptico. La verdad es que ahora, trabajando con los comandos del grupo código Sqlite3 para obtener las matrices de datos y con JavaScript el salto hacia adelante ha sido espectacular! Para muestra un botón: Reduje, para programar el ejemplo, la base de datos hasta 300 pueblos y, aun así, cargarla suponia unos 5 seg. Ahora, con Sqlite, carga los nombres (solo los nombres) de la lista entera (948 pueblos) en 1 seg! Una vez muestra la lista y mientras la hojeas o seleccionas un filtro, monta la base entera en segundo plano. Nuevo problema (que no será el último ![]() Para filtrar por el campo COMARCA elijo de un desplegable (elemento "Rueda") el nombre de la comarca. Luego, ya en Sqlite, para filtrar la lista pongo ....WHERE COMARCA = '%tap_label'" Esto funciona para "casi todos los casos" pero cuando el nombre de la comarca contiene el carácter apóstrofo ' no (Val d'Aran, Pla de l'Estany, Pla d'Urgell,...). Concluyo que Sqlite aprecia que el filtro se acaba en el carácter de marras. Se me ocurre una solución "poco limpia": modificar la base de datos substituyendo el apóstrofe por un espacio. Cual seria la solución "limpia" para el caso. Muy agradecido por tus aportes! Saludos
__________________
Me apasiona volar, pero con los pies en el suelo...
|
#12
|
||||
|
||||
Esto funciona para "casi todos los casos" pero cuando el nombre de la comarca contiene el carácter apóstrofo ' no (Val d'Aran, Pla de l'Estany, Pla d'Urgell,...). Concluyo que Sqlite aprecia que el filtro se acaba en el carácter de marras. Se me ocurre una solución "poco limpia": modificar la base de datos substituyendo el apóstrofe por un espacio.
![]() Código:
SELECT POBLACIO, C_POSTAL, COMARCA, PROVINCIA, DOMICILI, TELEFON, HABITANTS FROM POBLES_CAT WHERE POBLACIO= 'Val d\'Aran' Código:
SELECT POBLACIO, C_POSTAL, COMARCA, PROVINCIA, DOMICILI, TELEFON, HABITANTS FROM POBLES_CAT WHERE POBLACIO= 'Val d'Aran' |
#13
|
||||
|
||||
__________________
Me apasiona volar, pero con los pies en el suelo...
|
#14
|
||||
|
||||
Código:
SELECT POBLACIO, C_POSTAL, COMARCA, PROVINCIA, DOMICILI, TELEFON, HABITANTS FROM POBLES_CAT WHERE POBLACIO= 'Val d''Aran' |
Gracias de parte de: | ||
#15
|
||||
|
||||
Muy claro ahora @danko9696
Veo que con Sqlite3 has puesto en mi caja de herramientas para programación de bricolage otro utensilio muy útil y potente. Hace algún tiempo @mlesir ya me lo aconsejó, pero googleando me parecia demasiado complicado y de entrada no valoré adecuadamente su sugerencia. Una vez metido con estas cuatro cosas elementales ya no me parece tan críptico. La verdad es que ahora, trabajando con los comandos del grupo código Sqlite3 para obtener las matrices de datos y con JavaScript el salto hacia adelante ha sido espectacular! Para muestra un botón: Reduje, para programar el ejemplo, la base de datos hasta 300 pueblos y, aun así, cargarla suponia unos 5 seg. Ahora, con Sqlite, carga los nombres (solo los nombres) de la lista entera (948 pueblos) en 1 seg! Una vez muestra la lista y mientras la hojeas o seleccionas un filtro, monta la base entera en segundo plano. Nuevo problema (que no será el último ![]() Para filtrar por el campo COMARCA elijo de un desplegable (elemento "Rueda") el nombre de la comarca. Luego, ya en Sqlite, para filtrar la lista pongo ....WHERE COMARCA = '%tap_label'" Esto funciona para "casi todos los casos" pero cuando el nombre de la comarca contiene el carácter apóstrofo ' no (Val d'Aran, Pla de l'Estany, Pla d'Urgell,...). Concluyo que Sqlite aprecia que el filtro se acaba en el carácter de marras. Se me ocurre una solución "poco limpia": modificar la base de datos substituyendo el apóstrofe por un espacio. Cual seria la solución "limpia" para el caso. Muy agradecido por tus aportes! Saludos ![]() Y no solo es velocidad en bruto. El hecho de poder usar paginación hace que sea incluso mucho más rápido todavía. Si con 948 pueblos es más rápido, ten en cuenta que no puedes mostrar todos los resultados a la vez en pantalla, así que lo suyo es usar paginación con LIMIT. Imagínate como será mostrando solo los 20-40 resultados que puedes tener en pantalla en un mismo momento frente a tener que cargar toda la base de datos cada vez. Para los apóstrofes no puedes usar el normal, ya que se usa en la sintaxis de sqlite para delimitar cadenas. Lo mejor creo que es cambiarlo por una comilla simple, como ´ (en lugar de '). Muy parecido visualmente pero deja de ser el mismo caracter. Otra sugerencia es usar siempre un WHERE 1=1 acompañado de una variable filtro que vayas construyendo de acuerdo a cuadros de texto que puedas tener en una escena o procedente de otros sitios. Por ejemplo: .... WHERE 1=1 %v_filtro_sqlite LIMIT ..... y la variable %v_filtro_sqlite la vas construyendo a base de añadir condiciones según veas, como por ejemplo, siempre añades el AND ..., sabiendo que ya tienes el WHERE en la consulta desde un principio. - Inicializar %v_filtro_sqlite --> (un espacio) Y luego según vayas revisando parámetros para usar en la condición, cosas como: - Asignar %v_filtro_sqlite --> %v_filtro_sqlite AND nompoblacion like '%v_nombre_buscar%' |
Gracias de parte de: | ||
#16
|
||||
|
||||
Lo puse sobre todo porque me chocaba un poco, ya que si te has atrevido con javascript que menos que iniciarse con sqlite, que requiere mucho menos esfuerzo para manejarlo a nivel básico, y más cuando utilizas bases de datos desde Tasker.
Y no solo es velocidad en bruto. El hecho de poder usar paginación hace que sea incluso mucho más rápido todavía. Si con 948 pueblos es más rápido, ten en cuenta que no puedes mostrar todos los resultados a la vez en pantalla, así que lo suyo es usar paginación con LIMIT. Imagínate como será mostrando solo los 20-40 resultados que puedes tener en pantalla en un mismo momento frente a tener que cargar toda la base de datos cada vez. Para los apóstrofes no puedes usar el normal, ya que se usa en la sintaxis de sqlite para delimitar cadenas. Lo mejor creo que es cambiarlo por una comilla simple, como ´ (en lugar de '). Muy parecido visualmente pero deja de ser el mismo caracter. Otra sugerencia es usar siempre un WHERE 1=1 acompañado de una variable filtro que vayas construyendo de acuerdo a cuadros de texto que puedas tener en una escena o procedente de otros sitios. Por ejemplo: .... WHERE 1=1 %v_filtro_sqlite LIMIT ..... y la variable %v_filtro_sqlite la vas construyendo a base de añadir condiciones según veas, como por ejemplo, siempre añades el AND ..., sabiendo que ya tienes el WHERE en la consulta desde un principio. - Inicializar %v_filtro_sqlite --> (un espacio) Y luego según vayas revisando parámetros para usar en la condición, cosas como: - Asignar %v_filtro_sqlite --> %v_filtro_sqlite AND nompoblacion like '%v_nombre_buscar%' ![]() Para lo de los apóstrofes "liantes" modificaré la BD en el CSV con "buscar/reemplazar" substituyendo apóstrofes por acentos sin letra (en el PC se puede, en el móvil no…) y reharé la base. En cuanto a lo segundo me lo beberé a sorbitos, no sea que me atragante… En principio lo de paginar las lecturas de la BD parece muy interesante, pero, funcionará cuando los resultados se muestran en un elemento Menú de la escena en donde se ven los nombres desplazando el dedo por la pantalla??? Gracias de nuevo y saludos! Enviat des del meu SM-T550 usant Tapatalk
__________________
Me apasiona volar, pero con los pies en el suelo...
|
Gracias de parte de: | ||
#17
|
||||
|
||||
Comprendido, @danko9696.
Para lo de los apóstrofes "liantes" modificaré la BD en el CSV con "buscar/reemplazar" substituyendo apóstrofes por acentos sin letra (en el PC se puede, en el móvil no…) y reharé la base. ![]() No sirve para ese caso, solo para cuando muestras resultados sin scroll. |
Gracias de parte de: | ||
#18
|
||||
|
||||
Porqué (al menos yo no se donde) no tengo acentos sin vocal debajo…
__________________
Me apasiona volar, pero con los pies en el suelo...
|
#19
|
||||
|
||||
Que raro, creo que todos o casi todos los teclados de android lo tienen. Prueba con Touchpal, que es el que uso actualmente con Tasker. Permite tanto comilla simple de apertura como de cierre. Y además (lo uso por eso) tiene un clipboard integrado que viene muy bien para Tasker y KLWP/Zooper (mejor que el que viene de serie en el móvil), ya que permite guardar y asignar nombres a elementos del clipboad muy comodamente para acceder a ellos después.
|
|
#20
|
||||
|
||||
https://play.google.com/store/apps/d...ols.characters https://play.google.com/store/apps/d...diferentesfree https://play.google.com/store/apps/d...e.SymbolsPanel Quizá alguna de ellas te permita poner un acento solo, sin vocal.
__________________
Firmado: Caravantes, miembro del equipo que promueve el Subforo de Tasker
|
![]() |
![]() |
||||||
|