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

Respuesta
 
Herramientas
  #1  
Viejo 28/06/18, 14:08:01
Array

[xs_avatar]
SmartPhoneLover SmartPhoneLover no está en línea
Usuario muy activo
 
Fecha de registro: jun 2016
Mensajes: 542
Tu operador: Movistar

noticia Funciones Java en Tasker



Hola Tasker@s!
Abro este hilo con el fin de recolectar todos aquellos grupos de acciones basadas única y puramente en funciones java.

Todos sabemos el gran potencial que tiene y nos ofrece Tasker, aún haciendo uso de sus acciones "preestablecidas". Pero... ¿y si llegásemos a darle uso a la acción 'Funciones Java' en nuestras tareas?

A continuación los recopilatorios...

· Adaptador (bluetooth) -> Consultar Estado | Enceder/Apagar
· Ejecutar Comandos Consola (shell) -> Go!
· Consultar Estado LockScreen (sistema) -> Go!
· Cambiar Perfiles ROM LineageOS -> Go!
· Consultar/Modificar Android Settings (Global, Secure, System) -> Go!

Última edición por SmartPhoneLover Día 28/06/18 a las 18:15:09.
Responder Con Cita
Los siguientes 2 usuarios han agradecido a SmartPhoneLover su comentario:


  #2  
Viejo 28/06/18, 14:18:00
Array

[xs_avatar]
SmartPhoneLover SmartPhoneLover no está en línea
Usuario muy activo
 
Fecha de registro: jun 2016
Mensajes: 542
Tu operador: Movistar

Aquí tienen un ejemplo para iniciar el hilo:

Código:
    A1: Java Function [ Return:temp Class Or Object:BluetoothAdapter Function:getDefaultAdapter
{BluetoothAdapter} () Param: Param: Param: Param: Param: Param: Param: ] 
    A2: Java Function [ Return:%temp Class Or Object:temp Function:isEnabled
{boolean} () Param: Param: Param: Param: Param: Param: Param: ] 
    A3: Flash [ Text:%temp Long:Off ]
El código de arriba permite conocer el estado del BT. Es decir, si esta encendido o apagado. Los posibles valores son: falsetrue (apagado/encendido).
Responder Con Cita
Los siguientes 2 usuarios han agradecido a SmartPhoneLover su comentario:
  #3  
Viejo 28/06/18, 14:23:37
Array

[xs_avatar]
SmartPhoneLover SmartPhoneLover no está en línea
Usuario muy activo
 
Fecha de registro: jun 2016
Mensajes: 542
Tu operador: Movistar

Continuando con las acciones anterior de consultado de estado, a continuación incluyo las correspondientes a encender y apagar el bluetooth:

-> ACTIVAR...
Código:
    A1: Java Function [ Return:temp Class Or Object:BluetoothAdapter Function:getDefaultAdapter
{BluetoothAdapter} () Param: Param: Param: Param: Param: Param: Param: ] 
    A2: Java Function [ Return: Class Or Object:temp Function:enable
{boolean} () Param: Param: Param: Param: Param: Param: Param: ]
-> DESACTIVAR...
Código:
    A1: Java Function [ Return:temp Class Or Object:BluetoothAdapter Function:getDefaultAdapter
{BluetoothAdapter} () Param: Param: Param: Param: Param: Param: Param: ]
    A2: Java Function [ Return: Class Or Object:temp Function:disable
{boolean} () Param: Param: Param: Param: Param: Param: Param: ]
Responder Con Cita
Los siguientes 2 usuarios han agradecido a SmartPhoneLover su comentario:
  #4  
Viejo 28/06/18, 14:52:11
Array

[xs_avatar]
SmartPhoneLover SmartPhoneLover no está en línea
Usuario muy activo
 
Fecha de registro: jun 2016
Mensajes: 542
Tu operador: Movistar

Con esto podreis ejecutar comandos de consola, como si lo hiciesemos usando la acción '+ > Code > Run Shell' en Tasker, o usando cualquier otra app de terceros, como Terminal o Termux.

-> Ejecutar comandos normales...
Código:
    A1: Java Function [ Return:temp Class Or Object:Runtime Function:getRuntime
{Runtime} () Param: Param: Param: Param: Param: Param: Param: ] 
    A2: Java Function [ Return: Class Or Object:temp Function:exec
{Process} (String) Param:CMD Param: Param: Param: Param: Param: Param: ]
-> Ejecutar comandos que requieren acceso root...
Código:
    A1: Java Function [ Return:temp Class Or Object:Runtime Function:getRuntime
{Runtime} () Param: Param: Param: Param: Param: Param: Param: ] 
    A2: Java Function [ Return: Class Or Object:temp Function:exec
  {Process} (String) Param:su -c CMD Param: Param: Param: Param: Param: Param: ]
Notas:
- Sustituir 'CMD' de la A2, en el primer parámetro, con el comando + sus posibles argumentos a usar.
- La ejecución de comandos de consola mediante JF no implica una mejora en la velocidad de ejecución de éstos.

Última edición por SmartPhoneLover Día 28/06/18 a las 14:57:20.
Responder Con Cita
Los siguientes 2 usuarios han agradecido a SmartPhoneLover su comentario:
  #5  
Viejo 28/06/18, 15:06:57
Array

[xs_avatar]
SmartPhoneLover SmartPhoneLover no está en línea
Usuario muy activo
 
Fecha de registro: jun 2016
Mensajes: 542
Tu operador: Movistar

Si queremos consultar el estado actual de nuestro bloqueo de pantalla (KeyGuard)...

Código:
    A1: Java Function [ Return:temp Class Or Object:CONTEXT Function:getSystemService
{KeyguardManager} (String) Param:keyguard Param: Param: Param: Param: Param: Param: ] 
    A2: Java Function [ Return:%temp Class Or Object:temp Function:inKeyguardRestrictedInputMode
{boolean} () Param: Param: Param: Param: Param: Param: Param: ] 
    A3: Flash [ Text:%temp Long:Off ]
Notas:
- Los posibles valores son: false/true (desactivado/activado).
- Hay que agregar manualmente el objeto al que hace referencia en la A1: 'KeyguardManager'.
Responder Con Cita
Los siguientes 2 usuarios han agradecido a SmartPhoneLover su comentario:
  #6  
Viejo 28/06/18, 15:35:19
Array

[xs_avatar]
SmartPhoneLover SmartPhoneLover no está en línea
Usuario muy activo
 
Fecha de registro: jun 2016
Mensajes: 542
Tu operador: Movistar

Usuarios con la custom ROM de LineageOS, teniendo la nueva característica de los perfiles, podrán pasar de una configuración a otra en segundo plano.

-> Método (1) - Si el perfil se establece dentro de la misma tarea
Código:
    A1: Variable Set [ Name:%temp To:Perfil_LOS Recurse Variables:Off Do Maths:Off Append:Off ]
    A2: Java Function [ Return:temp Class Or Object:cyanogenmod.app.ProfileManager Function:getInstance
{cyanogenmod.app.ProfileManager} (Context) Param:CONTEXT Param: Param: Param: Param: Param: Param: ]
    A3: Java Function [ Return: Class Or Object:temp Function:setActiveProfile
 {} (String) Param:%temp Param: Param: Param: Param: Param: Param: ]
-> Método (2) - Si el perfil proviene de una tarea externa
Código:
    A1: Java Function [ Return:temp Class Or Object:cyanogenmod.app.ProfileManager Function:getInstance
{cyanogenmod.app.ProfileManager} (Context) Param:CONTEXT Param: Param: Param: Param: Param: Param: ]
    A2: Java Function [ Return: Class Or Object:temp Function:setActiveProfile
{} (String) Param:%par# Param: Param: Param: Param: Param: Param: ]
Notas:
- Es necesario especificar el nombre de la clase (cyanogenmod.app.ProfileManager) en la A2 y A1 respectivamente, manualmente, debido a que ésta no forma parte de las nativas de Android.
- La variable '%temp' o '%par#' deberán contener el nombre exacto que le hayamos dado a nuestro(s) perfil(es). (SENSIBLES A MAYÚSCULAS/MINÚSCULAS)

Última edición por SmartPhoneLover Día 28/06/18 a las 15:38:47.
Responder Con Cita
Los siguientes 2 usuarios han agradecido a SmartPhoneLover su comentario:
  #7  
Viejo 28/06/18, 18:11:47
Array

[xs_avatar]
SmartPhoneLover SmartPhoneLover no está en línea
Usuario muy activo
 
Fecha de registro: jun 2016
Mensajes: 542
Tu operador: Movistar

Aunque la última versión de Tasker (5.x) ya permite modificar y consultar los valores de Settings (Global, System, Secure) de Android, dichas funciones nunca vienen mal ;)

-> LECTURA
- Settings (entero)
Código:
*GLOBAL*
    A1: Java Function [ Return:temp Class Or Object:CONTEXT Function:getContentResolver
 {ContentResolver} () Param: Param: Param: Param: Param: Param: Param: ] 
    A2: Java Function [ Return:%temp Class Or Object:android.provider.Settings$Global Function:getInt
{int} (ContentResolver, String) Param:temp Param:NOMBRE_SETTING Param: Param: Param: Param: Param: ] 
    A3: Flash [ Text:%temp Long:Off ] 

 *SECURE*
    A1: Java Function [ Return:temp Class Or Object:CONTEXT Function:getContentResolver
{ContentResolver} () Param: Param: Param: Param: Param: Param: Param: ] 
    A2: Java Function [ Return:%temp Class Or Object:android.provider.Settings$Secure Function:getInt
{int} (ContentResolver, String) Param:temp Param:NOMBRE_SETTING Param: Param: Param: Param: Param: ] 
    A3: Flash [ Text:%temp Long:Off ] 

*SYSTEM*
     A1: Java Function [ Return:temp Class Or Object:CONTEXT Function:getContentResolver
{ContentResolver} () Param: Param: Param: Param: Param: Param: Param: ] 
    A2: Java Function [ Return:%temp Class Or Object:android.provider.Settings$System Function:getInt
{int} (ContentResolver, String) Param:temp Param:NOMBRE_SETTING Param: Param: Param: Param: Param: ] 
    A3: Flash [ Text:%temp Long:Off ]
- Settings (texto)
Código:
*GLOBAL*
    A1: Java Function [ Return:temp Class Or Object:CONTEXT Function:getContentResolver
{ContentResolver} () Param: Param: Param: Param: Param: Param: Param: ] 
    A2: Java Function [ Return:%temp Class Or Object:android.provider.Settings$Global Function:getString
{String} (ContentResolver, String) Param:temp Param:NOMBRE_SETTING Param: Param: Param: Param: Param: ] 
    A3: Flash [ Text:%temp Long:Off ] 

*SECURE*
    A1: Java Function [ Return:temp Class Or Object:CONTEXT Function:getContentResolver
{ContentResolver} () Param: Param: Param: Param: Param: Param: Param: ] 
    A2: Java Function [ Return:%temp Class Or Object:android.provider.Settings$Secure Function:getString
{String} (ContentResolver, String) Param:temp Param:NOMBRE_SETTING Param: Param: Param: Param: Param: ] 
    A3: Flash [ Text:%temp Long:Off ] 

*SYSTEM*
    A1: Java Function [ Return:temp Class Or Object:CONTEXT Function:getContentResolver
{ContentResolver} () Param: Param: Param: Param: Param: Param: Param: ] 
    A2: Java Function [ Return:%temp Class Or Object:android.provider.Settings$System Function:getString
{String} (ContentResolver, String) Param:temp Param:NOMBRE_SETTING Param: Param: Param: Param: Param: ] 
    A3: Flash [ Text:%temp Long:Off ]
-> ESCRITURA
- Settings (entero)
Código:
*GLOBAL*
    A1: Java Function [ Return:temp Class Or Object:CONTEXT Function:getContentResolver
{ContentResolver} () Param: Param: Param: Param: Param: Param: Param: ] 
    A2: Java Function [ Return:%temp Class Or Object:android.provider.Settings$Global Function:putInt
{boolean} (ContentResolver, String, int) Param:temp Param:NOMBRE_SETTING Param:VALOR_SETTING Param: Param: Param: Param: ] 

*SECURE*
    A1: Java Function [ Return:temp Class Or Object:CONTEXT Function:getContentResolver
{ContentResolver} () Param: Param: Param: Param: Param: Param: Param: ] 
    A2: Java Function [ Return:%temp Class Or Object:android.provider.Settings$Secure Function:putInt
{boolean} (ContentResolver, String, int) Param:temp Param:NOMBRE_SETTING Param:VALOR_SETTING Param: Param: Param: Param: ] 

*SYSTEM*
    A1: Java Function [ Return:temp Class Or Object:CONTEXT Function:getContentResolver
{ContentResolver} () Param: Param: Param: Param: Param: Param: Param: ] 
    A2: Java Function [ Return:%temp Class Or Object:android.provider.Settings$System Function:putInt
 {boolean} (ContentResolver, String, int) Param:temp Param:NOMBRE_SETTING Param:VALOR_SETTING Param: Param: Param: Param: ]
- Settings (texto)
Código:
*GLOBAL*
    A1: Java Function [ Return:temp Class Or Object:CONTEXT Function:getContentResolver
{ContentResolver} () Param: Param: Param: Param: Param: Param: Param: ] 
    A2: Java Function [ Return:%temp Class Or Object:android.provider.Settings$Global Function:putString
{boolean} (ContentResolver, String, String) Param:temp Param:NOMBRE_SETTING Param:VALOR_SETTING Param: Param: Param: Param: ] 

*SECURE*
    A1: Java Function [ Return:temp Class Or Object:CONTEXT Function:getContentResolver
{ContentResolver} () Param: Param: Param: Param: Param: Param: Param: ] 
    A2: Java Function [ Return:%temp Class Or Object:android.provider.Settings$Secure Function:putString
{boolean} (ContentResolver, String, String) Param:temp Param:NOMBRE_SETTING Param:VALOR_SETTING Param: Param: Param: Param: ] 

*SYSTEM*
    A1: Java Function [ Return:temp Class Or Object:CONTEXT Function:getContentResolver
{ContentResolver} () Param: Param: Param: Param: Param: Param: Param: ] 
    A2: Java Function [ Return:%temp Class Or Object:android.provider.Settings$System Function:putString
{boolean} (ContentResolver, String, String) Param:temp Param:NOMBRE_SETTING Param:VALOR_SETTING Param: Param: Param: Param: ]
Notas:
- Tal como funciona la nueva acción 'Custom Settings', dichas funciones tampoco requerirán acceso root al leer/escribir, siempre y cuando se le haya ortorgado a Tasker el permiso ADB.
- La velocidad de ejecución, tanto en lectura como escritura, es mucho más veloz que con comandos shell. (Tasker 5.x = ahora equiparable con su nueva acción 'Custom Settings')
- Dependiendo del tipo de valor que almacene una entrada (entero = int (número), texto = string (cadena texto)), deberemos hacer uso de un tipo de dato u otro. En caso contrario, la tarea finalizará con error.
- Los campos 'Param' que contengan 'NOMBRE_SETTING', es donde tendremos que indicar el nombre del Setting; y aquellos que sean 'VALOR_SETTING', será donde indicaremos el valor a modificar (int, string, float...)
- Estando directamente relacionado con el punto anterior, si el tipo de dato que queremos obtener o introducir es del tipo float, tendremos que usar la función 'getFloat' o 'putFloat', respectivamente. (lo mismo se aplicaría a cualquier otro tipo de dato fuera de los estándares)

Última edición por SmartPhoneLover Día 28/06/18 a las 18:23:30.
Responder Con Cita
Los siguientes 2 usuarios han agradecido a SmartPhoneLover su comentario:
Respuesta

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



Hora actual: 22:14:20 (GMT +1)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /