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

Respuesta
 
Herramientas
  #1  
Viejo 23/03/16, 00:02:12
Array

[xs_avatar]
mlesir mlesir no está en línea
Usuario muy activo
 
Fecha de registro: abr 2012
Mensajes: 2,263
Modelo de smartphone: OnePlus One,BQ Edison1, GoogleChrome,
Tu operador: Pepephone
Como lanzar una app de manera dinámica (con variable) y como obtener el nombre de las apps

Extraido de:
http://tasker.dinglisch.net/userguid...t.html#loadApp

leemos:

"loadApp

var ok = loadApp( str name, str data, bool excludeFromRecents )
Start up the named app.
Name can be a package name or app label, it's tested first against known package names. Note: app label could be localized to another language if the script is used in an exported app.
Data is in URI format and app-specific.
When excludeFromRecents is true, the app will not appear in the home screen 'recent applications' list."


LANZAR APPS CON JAVASCRIPLET: ( se puede mejorar sobre todo usando variables locales)

A1: Establecer variable [ Nombre:%app A:WhatsApp Calcular:Apagado Añadir:Apagado ]
A2: JavaScriptlet [ Código:var ok = loadApp(app); Librerías: Salida Automática:Encendido Cuenta atrás (segundos):45 ]

OBTENER NOMBRES DE APPS EN UN ARRAY:



A1: Array Clear [ Nombre:%Aab ]
A2: List Apps [ Tipo:Aplicación Coincidir: Almacenar Resultado en:%aaa ]
A3: Establecer variable [ Nombre:%con A:1 Calcular:Apagado Añadir:Apagado ]
A4: For [ Variable:%for Ítems:%aaa( ]
A5: Buscar y Reemplazar Contenido de Variable [ Variable:%for Buscar::.* Ignorar Caso:Apagado Multilínea:Encendido Una sola coincidencia:Apagado Almacenar Coincidencias En: Reemplazar Coincidencias:Encendido Reemplazar Con: ]
A6: Probar App [ Tipo:Nombre Paquete Datos:%for Almacenar Resultado en:%Aab(%con) Continuar Tarea Tras Error:Encendido ]
A7: Sumar a variable [ Nombre:%con Valor:1 Módulo (wrap around):0 ] Si (if) [ %Aab(%con) !~ %* & %Aab(%con) !~ %for ]
A8: End For

Nota: si no quieres almacenar los nombres de los apps para luego cambia la variable de usuario %Aab por una local %aab, y suprime la acción A1 de borrar array. Con variables locales la tarea va mucho más rápida.

Enviado desde mi T1-701u mediante Tapatalk
__________________
Fdo: Mlesir. Miembro del equipo que promueve el foro y el recopilatorio de Tasker http://www.htcmania.com/forumdisplay.php?f=969

Última edición por mlesir Día 23/03/16 a las 14:54:19.
Responder Con Cita
Los siguientes 5 usuarios han agradecido a mlesir su comentario:
[ Mostrar/Ocultar listado de agradecimientos ]


  #2  
Viejo 23/03/16, 09:58:36
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,050
Modelo de smartphone: OnePlus 3T | Xiaomi 9T Pro
Tu operador: Vodafone
 Cita: Originalmente Escrito por mlesir Ver Mensaje
OBTENER NOMBRES DE APPS EN UN ARRAY:

A1: Limpiar variable [ Nombre:%Aaa Coincidencia de Patrón:Apagado ]
A2: Array Clear [ Nombre:%Aaa ]
A3: Array Clear [ Nombre:%Aab ]
A4: List Apps [ Tipo:Aplicación Coincidir: Almacenar Resultado en:%Aaa ]
A5: Establecer variable [ Nombre:%con A:1 Calcular:Apagado Añadir:Apagado ]
A6: For [ Variable:%for Ítems:%Aaa( ]
A7: Buscar y Reemplazar Contenido de Variable [ Variable:%for Buscar::.* Ignorar Caso:Apagado Multilínea:Encendido Una sola coincidencia:Apagado Almacenar Coincidencias En: Reemplazar Coincidencias:Encendido Reemplazar Con: ]
A8: Probar App [ Tipo:Nombre Paquete Datos:%for Almacenar Resultado en:%Aab(%con) Continuar Tarea Tras Error:Encendido ]
A9: Sumar a variable [ Nombre:%con Valor:1 Módulo (wrap around):0 ] Si (if) [ %Aab(%con) !~ %* & %Aab(%con) !~ %for ]
A10: End For
Me ha costado un poco entender lo que hacía la acción A7 porque no veía la forma en que Tasker devuelve el nombre de las apps (paquete:xxx) en la acción A4 . Y tampoco veía el motivo de las condiciones para el contador de A9 (creo que no son necesarias ).

Una vez "visto" el funcionamiento, y con tu permiso , aquí dejo mi propia versión...

Código:
ListaApps (666)
	A1: List Apps [ Tipo:Aplicación Almacenar Resultado en:%pak ] 
	A2: For [ Variable:%num Ítems:1:%pak(#) ] 
	A3: Buscar y Reemplazar Contenido de Variable [ Variable:%pak(%num) Buscar::.* Reemplazar Coincidencias:Encendido Reemplazar Con: ] 
	A4: Probar App [ Tipo:Nombre Paquete Datos:%pak(%num) Almacenar Resultado en:%app(%num) ] 
	A5: End For
La tarea genera dos arrays locales. En %pak() están los nombres de los paquetes y en %app() los nombres de las aplicaciones. Ambos están emparejados: %app(1) y %pak(1) hacen referencia a la misma aplicación.

El funcionamiento es simple...
  • En A1 Tasker entrega un array con todas las apps instaladas (cada app tiene la forma paquete:xxx)
  • El bucle A2-A5 recorre ese array de apps
  • En A3 se "limpia" el nombre de app que entrega Tasker quitando la parte ":xxx" y dejando sólo el nombre de "paquete"
  • En A4 se saca el nombre de la app (lo que vemos normalmente) de cada nombre de "paquete"

__________________
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 ]
  #3  
Viejo 23/03/16, 14:48:29
Array

[xs_avatar]
mlesir mlesir no está en línea
Usuario muy activo
 
Fecha de registro: abr 2012
Mensajes: 2,263
Modelo de smartphone: OnePlus One,BQ Edison1, GoogleChrome,
Tu operador: Pepephone
Interesante tu revisión. Te explico porque hice asi lo del contador:

1-La acción de Probar App a veces devuelve el mismo valor que se le dió (xej: com.android.noseque) o lo deja vacío. Por eso el contador con el if. De esa manera la siguiente "prueba" que hagamos y que arroje un resultado válido machacara o se meterá en la variable donde se guardó el resultado no válido.

2- Esta claro que en mi tarea sobra A1, borrar la variable %Aaa. Se me quedo ahi esa acción. Edito el post y la suprimo. Lo que no esta claro es que sobre el borrar arrays. Si por un casual hacemos esta garea y nos da por ejemplo 122 resultados, si despjés de tiempo la ejecutamos y tenemos menos apps instaladas, digamos que nos da 111, del 112 al 122 el array va a contener los viejos valores, mostrandonos apps q ya no tenemos.
Si estoy de acuerdo en que sobraría el borrar array de %Aab porque es una tonteria hacerlo con variable de usuario y no con locales. En principio no queremos para nada el nombre de los paquetes.

3-Esta claro que utilizando variables locales se hace mucho más rápido pero eso ya depende de lo que se quiera hacer después. Si quieres conservar el nombre de las apps tendrás que utilizar variables de usuario.

Edito el post con tus sugerencias.



Enviado desde mi T1-701u mediante Tapatalk
__________________
Fdo: Mlesir. Miembro del equipo que promueve el foro y el recopilatorio de Tasker http://www.htcmania.com/forumdisplay.php?f=969
Responder Con Cita
Gracias de parte de:
  #4  
Viejo 23/03/16, 15:43:37
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,050
Modelo de smartphone: OnePlus 3T | Xiaomi 9T Pro
Tu operador: Vodafone
 Cita: Originalmente Escrito por mlesir Ver Mensaje
1-La acción de Probar App a veces devuelve el mismo valor que se le dió (xej: com.android.noseque) o lo deja vacío. Por eso el contador con el if. De esa manera la siguiente "prueba" que hagamos y que arroje un resultado válido machacara o se meterá en la variable donde se guardó el resultado no válido.
Entendía que esos "if" estaban para controlar que "Probar App" no devolviera nada o devolviera el mismo nombre del paquete, pero en mis pruebas no me ha pasado nunca, y si la lista inicial se hace SÓLO con aplicaciones no debería pasar. De todas formas lo observaré por si las moscas.

 Cita: Originalmente Escrito por mlesir Ver Mensaje
... Lo que no esta claro es que sobre el borrar arrays ...
Desde luego. Usando variables globales lo correcto es limpiar el array antes de llenarlo de nuevo, pero yo he usado variables locales y eso no es necesario.

Todavía le tengo que dar una vuelta más a esto, pero ahora mismo no tengo tiempo.

Volveré
__________________
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:
Respuesta

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



Hora actual: 03:29:11 (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 / 邮件联系 /