Home Menu

Menu



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


 
Herramientas
  #1  
Viejo 23/03/16, 00:02:12
Avatar de mlesir
mlesir mlesir no está en línea
Usuario muy activo
Mensajes: 2,263
 
Fecha de registro: abr 2012
Mensajes: 2,263
Modelo de smartphone: OnePlus One,BQ Edison1, GoogleChrome,
Versión de ROM: 4.4 Cyanogen
Tu operador: Pepephone
Mencionado: 36 comentarios
Tagged: 2 hilos
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

Ú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
Avatar de WillyWeb
WillyWeb WillyWeb no está en línea
Usuario muy activo
Mensajes: 2,067
 
Fecha de registro: dic 2008
Localización: Hoy aquí y mañana allí
Mensajes: 2,067
Modelo de smartphone: OnePlus 3T | Xiaomi 9T Pro
Versión de ROM: OxygenOS 9.0.6 | MIUI 12.5.1
Versión de Radio: Stock
Tu operador: Vodafone
Mencionado: 75 comentarios
Tagged: 3 hilos
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"

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
Avatar de mlesir
mlesir mlesir no está en línea
Usuario muy activo
Mensajes: 2,263
 
Fecha de registro: abr 2012
Mensajes: 2,263
Modelo de smartphone: OnePlus One,BQ Edison1, GoogleChrome,
Versión de ROM: 4.4 Cyanogen
Tu operador: Pepephone
Mencionado: 36 comentarios
Tagged: 2 hilos
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
Responder Con Cita
Gracias de parte de:
  #4  
Viejo 23/03/16, 15:43:37
Avatar de WillyWeb
WillyWeb WillyWeb no está en línea
Usuario muy activo
Mensajes: 2,067
 
Fecha de registro: dic 2008
Localización: Hoy aquí y mañana allí
Mensajes: 2,067
Modelo de smartphone: OnePlus 3T | Xiaomi 9T Pro
Versión de ROM: OxygenOS 9.0.6 | MIUI 12.5.1
Versión de Radio: Stock
Tu operador: Vodafone
Mencionado: 75 comentarios
Tagged: 3 hilos
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é
Responder Con Cita
Gracias de parte de:
Respuesta

Estás aquí
Regresar   HTCMania > Todo sobre Android > Otro software para Android > Tasker


Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 12:25:24 (GMT +2)

Cookies
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007