Tasker para principiantes. Lección 5: Trucos y consejos
Con autorización expresa del autor, este artículo es una traducción del original ubicado en
http://www.pocketables.com/2012/09/b...ps-tricks.html
Beguinners guide to Tasker, by Andreas Ødegård
Original Copyright @ 2006-2012 CrowdGather. All rights reserved
Tasker para principiantes. Lección 5: Trucos y consejos
00-tipsandtricks-608x274.jpg
Las cuatro anteriores partes de esta guía (http://www.htcmania.com/showthread.php?p=8821039) han sido exhaustivas, pero así es Tasker. A veces las cosas no son tan simples como parecen, y otras veces las cosas son más sencillas de lo que parecen. Esta parte se dedica a varios consejos y trucos para utilizar Tasker, cosas que no son tan obvias. He tratado de recopilar todos aquellos de los que me he acordado, pero si se me ocurren más puede haber una segunda serie de consejos y trucos en el futuro.
Tiempo en segundos
01-time-in-seconds.jpg
Operar con el tiempo puede ser molesto, porque las horas y los minutos no se llevan bien con las operaciones matemáticas. Eso crea un problema cuando hay acciones que requieren saber cuando ocurre algo en términos de tiempo desde o hasta ahora, o entre dos momentos en el tiempo. Ejemplos de ello son la acción Insertar-en-calendario, que requiere que se ingrese la fecha y la hora en cuestión de minutos a partir de ahora, o mi perfil de modo “durmiendo”, que me dice el tiempo que he dormido.
La solución es usar la menor medida del tiempo que utilizamos normalmente: segundos. Referenciar todos los tiempos en segundos permite aplicar las operaciones matemáticas normales como sumar y restar para calcular sin problemas los periodos de tiempo.
Esto, por supuesto, requiere que todos los tiempos se conviertan a segundos. Las mediciones reales de tiempo, tales como minutos, horas, días, semanas, o meses, se pueden convertir fácilmente con la multiplicación o división. Hay 60 segundos en un minuto, por lo que 1000 segundos es (1000/60) minutos, y así sucesivamente.
Pero las fechas del calendario son otra cuestión porque -en principio- no podemos convertir una fecha a segundos. Pero, afortunadamente Tasker tiene un sistema que sí lo permite, mediante el uso de su propia cronología que se inició en enero de 1970. Así cualquier instante o fecha puede expresarse como un (gran) número de segundos transcurridos desde aquel momento inicial.
A este número se puede acceder de dos maneras. La variable incorporada %TIMES contiene la fecha/hora actual en segundos, de forma similar a como %TIME y %DATE contienen la hora y fecha. También se puede utilizar la acción Convertir-Variable, de la que hablaré enseguida, para convertir las horas y fechas a este formato. Tras eso, ya se pueden aplicar las herramientas matemáticas a este sistema de tiempo. El resultado estará en segundos, que se pueden convertir en minutos, horas, días, semanas, etc, dividiendo por 60, otra vez por 60, luego dividiendo por 24, y así sucesivamente para moverse a través de los formatos.
Para tomar un ejemplo concreto, he mencionado mi perfil de modo “durmiendo”. Cuando se activa, copia el contenido de %TIMES a una variable de usuario %smactivation. Cuando se desactiva, hace una simple operación (%TIMES-%smactivation)/3600, dándome %smduration. Haber dividido por 3600 es lo mismo que dividir por 60 y luego de nuevo por 60, convirtiendo los segundos en horas. De este modo, %smduration contiene el tiempo total (en horas) que el perfil estuvo activo. Tenga en cuenta que el resultado no convierte decimales en minutos, por lo que me da 8,5 horas, no 8 horas y 30 minutos. Yo podría hacer que me diera horas y minutos, pero lo entiendo bien así.
Convertir-Variable
02-varcon.jpg
Convertir-Variable es una acción que siempre se debe tener en cuenta. Se puede convertir el contenido de una variable a otro formato, siempre que el contenido de la variable sea compatible con ese tipo de conversión particular. Tienes cosas cotidianas como pies a metros, cosas más especializadas como hex a decimal, y la conversión de la que he hablado anteriormente: tiempo en segundos. Este último es quizás el sistema más importante de conversión de los que hay disponibles en Convertir-Variable, y tiene asociadas cuatro funciones de conversión diferentes.
Fecha-Hora-a-Segundos es la función de conversión que se usa para convertir el tiempo a segundos. La guía-del-usuario-de-Tasker, disponible a través del signo de interrogación que hay en la pantalla de configuración de Convertir-Variable, muestra una visión general de cual formato de fecha y hora es compatible con Convertir-Variable; quizás el más sencillo sea AAAAMMDD HH.MM. La fecha puede estar sola, en cuyo caso se supondrá que la hora es 00:00; en cambio no se puede convertir una hora sola, siempre hay que especificar una fecha, aunque sea la fecha actual.
A veces usted se encontrará con una fecha que está en otro formato incompatible con los requisitos de Convertir-Variable, por ejemplo, si usted obtiene de datos de un calendario en línea o similar. Aquí es donde entran en juego sus habilidades usando Separar-variable, también Sección-de-variable y en algunos casos las matemáticas.
A modo de ejemplo, digamos que usted tiene una %fecha en el formato DDMMAAAA y necesita cambiarla al formato AAAAMMDD. Una forma muy simple de hacerlo sería:
1. Sección-de-variable
Nombre: %fecha
Desde 1, Longitud 2
Almacenar Resultado en %dd
2. Sección-de-variable
Nombre: %fecha
Desde 3, Longitud 2
Almacenar el resultado en %mm
3. Sección-de-variable
Nombre: %fecha
Desde 5, Longitud 4
Almacenar el resultado en %aaaa
4. Establecer-variable
%Nuevafecha a %aaaa%mm%dd
Tras eso, la variable %Nuevafecha puede ser utilizada en Convertir-Variable.
Tenga en cuenta que algunos de los formatos aceptados de Convertir-Variable dependen de la configuración del formato de fecha en la configuración del sistema. Es importante recordar que usted tiene las herramientas para hacer prácticamente cualquier cosa con el valor de una variable, por lo que no hay nada imposible. Sin embargo, es también importante comprobar que el contenido de las variables de entrada es compatible con el tipo de conversión que se va a usar.
Conversión del tiempo en segundos a fecha y hora
Las otras tres funciones de hora/fecha se encargan de hacer la conversión a un formato legible por humanos. La única diferencia entre ellos es la cantidad de información que contiene la variable resultante. La imagen siguiente muestra las diferencias entre el formato breve y los formatos de presentación mediana y larga.
03-date-formats.jpg
Un uso muy típico de esto sería devolver una fecha legible después de haber hecho algunos cálculos con el tiempo en segundos. Usted podría, por ejemplo, hacer una tarea en la que se introduce un número de días a partir de hoy, y luego devuelve la fecha que corresponda. Sería tan sencillo como sumar X * 24 * 60 * 60 (donde X es el número de días, y los cálculos de convertir eso en segundos) a la variable %TIMES, y pasar la variable resultante por el proceso de Convertir-Variable.
Variable-aleatoria
04-vrran.jpg
En Tasker, la acción Variable-aleatoria es el alfa y omega para la fabricación de cualquier cosa al azar, pero no es la acción más intuitiva que hay. En cuanto a su configuración, podrás ver algunas opciones bastante simples para Nombre, Min y Max. En pocas palabras, da a la variable de Nombre un valor entre Min y Max. Suena bastante simple, pero ¿cómo diablos se utiliza para, por ejemplo, leer un archivo al azar, o una línea al azar en un archivo de texto?
Bueno, la clave es obtener un número al azar, y luego usar ese número en otros lugares. En otras acciones de Tasker hay muchos ajustes que permiten utilizar variables para el ajuste, en lugar de un valor estático, y la clave es usar estas dos funciones juntas. Por ejemplo, la acción Leer-línea permite leer una línea de un archivo de texto. El número de la línea a leer se especifica en el ajuste Línea de esa acción. Obteniendo primero una variable aleatoria y, a continuación, utilizando la variable creada en el campo Línea, usted obtiene la lectura de una línea al azar! Esto se puede utilizar en muchos lugares, por ejemplo en la selección de archivos diferentes si se ha puesto a esos archivos nombres con números.
Pero todavía hay más. En la acción Variable-aleatoria , los campos Min y Max también pueden ser sustituidos por variables, lo que significa que usted puede controlar a distancia el rango del valor que será elegido al azar. Un ejemplo práctico se puede encontrar en mi propuesta de cena aleatoria (http://www.pocketables.com/2012/07/a...g-message.html), donde la tarea se ve así:
1. Leer-archivo:
Archivo: dinner.txt
A la variable: %dinnertext
2.Separar-variable:
Nombre: %dinnertext
Separador: |
3. Establecer-variable:
Nombre: %dinnerrandom
A: %dinnertext(#)
4. Variable-aleatoria:
Nombre: %dinnerno
Min: 1
Max: %dinnerrandom
5. Establecer-variable:
Nombre: %Dinnersuggestion
A: %dinnertext(%dinnerno)
La tarea comienza por la lectura del contenido de un archivo de texto, y dividiéndolo por el carácter |.
Este carácter | ha sido añadido intencionalmente al final de cada línea en el archivo de texto con el propósito específico de actuar como un divisor. Dividiendo así, nos da una variable para cada línea que hay en el archivo de texto.
La acción 3 establece %dinnerrandom a %dinnertext(#). Mediante la adición de (#) al final de una variable de base (también conocida como matriz) con varios hijos (%dinnertext1, %dinnertext2, etc), en realidad obtenemos el número de variables hijo que hay para esa matriz. Si el archivo de texto contiene 5 líneas, se obtienen variables %dinnertext1-5, y %dinnertext(#) será 5. Esta es una manera rápida y tosca de contar el número de líneas que hay en el archivo, contando cuántas variables se crean al dividir.
La acción 4 crea una variable aleatoria con rango desde 1 hasta %dinnerrandom. En otras palabras, un rango igual al número de líneas en el archivo de texto original. Esto nos genera un número al azar con garantías de que estará dentro del rango adecuado para el archivo de texto, incluso si el archivo de texto se ha modificado externamente, ya que el rango se determina leyendo primero el archivo de texto!
La acción 5 utiliza este número generado de forma aleatoria para recoger la variable secundaria correspondiente, y transferir el resultado a una variable global. Esta variable puede ser utilizada en una acción Decir, Notificación, etc.
Al hacerlo de esta manera, la tarea es completamente independiente de los cambios en el archivo de texto. No es necesario actualizar la tarea por cada vez que se actualiza el archivo de texto, ya que la tarea contará el número de entradas en sí, y escogerá un número al azar de ese rango. Esto le ahorra tener que cambiar el campo Max en Variable-aleatoria cada vez que cambia el número de líneas en el archivo de texto.
Haciendo Matemáticas
05-domaths.jpg
Tanto las condiciones Si(If) como la manipulación de variables permiten aplicar las matemáticas a cualquier situación. He mencionado algunos usos anteriormente, con la conversión de las diferentes medidas de tiempo. La buena noticia es que el enfoque es bastante simple: utilizar variables de Tasker con valores numéricos en lugar de los números reales (como se utilizan las incógnitas en matemáticas), y luego utilice las reglas normales matemáticas. La mala noticia es que usted todavía necesita saber matemáticas para ser capaz de hacer esto, y en muchos casos esto puede ser un desafío más grande que cualquier otra cosa en Tasker. Si usted no sabe cuándo poner algo entre paréntesis en matemáticas, Tasker no va a entender lo que está tratando de hacer.
En algunos casos las matemáticas también se puede utilizar como un sustituto para reemplazar acciones Separar-variable / Sección-de-variable, pero hay que tener cuidado al hacerlo. Si usted tiene un tiempo en el formato HHMM, como 1435, en realidad se puede hacer esto compatible con Convertir-Variable dividiendo por 100. Esto le da 14.35, que es un número decimal desde una perspectiva matemática, pero también puede ser interpretado como horas y minutos con un punto separador, y así es compatible con Convertir-Variable. La razón por la que hay que tener cuidado es que hacer lo mismo con un cero al principio o al final, como 0930, dará lugar a 9.3, ya que no almacena los ceros innecesarios tras hacer matemáticas. Convertir-Variable no va a entender lo que significa 9.3 en términos de tiempo. Puedes tratar de resolver el problema a utilizando condiciones Si(If) que chequan la longitud de la variable y añaden ceros, pero fácilmente tendrás que añadir decenas de acciones para cubrir todas las posibilidades.
Contando las cosas
06-varadd.jpg
Algo tan simple como contar tiene muchos usos en Tasker. Por ejemplo, puede contar los SMS entrantes, mensajes de correo electrónico, el número de horas que ha estado trabajando, durmiendo, o conducido en su coche. Puede utilizar esta información en Notificaciones, en acciones Decir, en widgets, o para controlar contextos disparadores.
La acción Sumar-a-variable es una herramienta muy útil en estos casos. Se añade un valor numérico a una variable especificada cada vez que se ejecuta la acción, esencialmente haciendo que la variable se convierta en un contador. Si esto se vincula a un contexto de eventos, como Texto-recibido, usted tiene un sistema que incrementará la variable cada vez que algo sucede.
Al hacer esto, es importante recordar cuándo y cómo reinicializar la variable. Nunca confunda un contador de Tasker con un contador interno de aplicación, ya que no tiene que ser lo mismo. Por ejemplo, puedo añadir un perfil que cuenta cuántos SMS he recibido, mediante la adición de 1 a una variable cada vez que recibo un SMS. Entonces, si yo entro en la aplicación de SMS y leo todos los SMS, la aplicación de SMS reiniciará a cero el contador de mensajes pendientes de leer, pero el contador Tasker seguirá con el mismo valor que tenía. Para poner a cero el contador de Tasker, podría, por ejemplo, crear un perfil que ponga a cero la variable contador cada vez que abro la aplicación de SMS, asumiendo que abro la aplicación para leer los mensajes. Pero si salgo de la aplicación sin haber leído todos los mensajes pendientes, el contador de Tasker estará otra vez descuadrado.
Normalmente esto no es un gran problema, al menos no si se mantiene al día con la lectura de todos los mensajes. Con Tasker, un contador de este tipo no es tan preciso como el contador interno de una aplicación, pero por otro lado, puede contar con casi todo lo que sucede en su teléfono. También se pueden combinar diferentes contadores, como la combinación de las llamadas perdidas, SMS y correos electrónicos en un único contador de eventos nuevos.
Prueba
La acción de Prueba está semi-escondida en la categoría Misc. La palabra Prueba se refiere aquí a probar el valor de algo, como una variable, datos estáticos, o un archivo. Se puede elegir entre una larga lista de tipos de prueba, que van desde la longitud de una variable a la fecha de modificación de un archivo.
Yo no tengo mucho trato con esta acción, y cuando lo hago, lo que utilizo normalmente es el tipo de Prueba de Longitud-de-variable (*). Esto cuenta el número de caracteres en una variable, que puede tener usos en Sección-de-variable. Esta acción de Prueba es una de esas acciones que usted debe conocer y estar familiarizado con lo que puede buscar allí si alguna vez necesitas una de sus herramientas, del mismo modo que con la acción Convertir-Variable.
(*) Nota del traductor: En realidad, los tipos de prueba están en inglés, incluso en el Tasker en español. Por tanto, lo correcto sería decir que el tipo es Variable Length.
No tenga miedo de usar múltiples tareas y perfiles para lograr algo
07-notcontext.jpg
Una cosa que me ha sorprendido observando las solicitudes de ayuda para Tasker es como muchas personas sienten la necesidad de meter la máxima funcionalidad en el menor número posible de tareas y perfiles. Parece un deseo de mantener Tasker organizado y funcionando sin problemas, pero a menudo esto perjudica la funcionalidad real.
Usaré mi perfil de modo “durmiendo” como ejemplo una vez más. El 98% de las veces es activado por la conexión del cargador, que Tasker puede leer mediante un contexto de estado de energía. Pero en realidad el perfil no está directamente vinculado a ese contexto. Está vinculado a un contexto de variable, %Sleepmode, que a su vez se establece por un perfil independiente que sí está vinculado al contexto del estado de alimentación. Esto significa que enchufar la carga hace que se active un perfil que establece una variable, que a su vez activa otro perfil. Así que, ¿por qué utilizar el doble de perfiles de los que son necesarios aparentemente?
La respuesta es simple: Para que el perfil principal sea controlable con diferentes métodos. Mi asistente de voz basado en Tasker, Nelly, también tiene la posibilidad de configurar %Sleepmode, por medio de una entrada de voz que contenga "buenas noches" o "buenos días." Si el perfil principal hubiera sido directamente vinculado a la carga eléctrica, yo no habría sido capaz controlarlo también utilizando Nelly. Ya he mencionado antes las ventajas de convertir variables en contextos, y esto es un claro ejemplo de ello.
También debo recordar a todos que la adición de múltiples contextos a un perfil hace que la relación entre ellos sea Y, no O. Todos los contextos se han de cumplir, no basta con que se cumpla uno u otro. No hay manera de hacer esta relación O, ya que francamente no hay razón para hacerlo, por lo siguiente. Los perfiles están vinculados a contextos y a tareas, pero la misma tarea puede ser utilizada en varios perfiles. Por lo tanto, puede tener dos perfiles distintos, cada uno con diferentes contextos, vinculados a la misma tarea, y aún así sólo tiene que editar una tarea. Puede parecer que esto pone un poco de desorden en su Tasker, pero en la práctica no hay diferencia.
Pero no hay que confundir la falta de una relación O entre los diferentes contextos con las distintas posibilidades de configuración dentro del mismo contexto. Por ejemplo, puede haber un único contexto de conexión WiFi que reaccione a varias redes diferentes mediante el uso de una barra en los campos de configuración, como el SSID. Si quieres un perfil que esté activo cuando está conectado a una red WiFi llamada Casa y también cuando está conectado a una red WiFi llamada Trabajo, puedes poner en el campo SSID Casa/Trabajo.
Las tareas también se puede dividir en partes, utilizando la acción de Realizar-tarea para ejecutar otras tareas como partes de una tarea. Este cambio no sólo ayuda a mantener las cosas organizadas sino que permite compartir grupos de acciones entre las tareas.
Un ejemplo es mi tarea de actualización de widget. Contiene acciones que en conjunto obtienen la información necesaria y la utilizan para actualizar mi widget Make Your Clock Widget. La actualización del widget es algo que tengo que hacer en situaciones distintas, incluso cuando el dispositivo se inicia, y también cuando cambia alguno de los valores utilizados en el widget. En lugar de insertar el mismo conjunto de acciones en las diferentes tareas independientes, solo inserto una acción que sirve para llamar a otra tarea que contiene el grupo de acciones comunes. Esto ahorra tiempo tanto en la configuración inicial como cuando se necesitan modificar las acciones.
Hablando de acciones de edición, tengo en mi Tasker varias acciones individuales bastante complicadas. Por complicado, quiero decir que su configuración implica rellenar muchos campos, a menudo con una gran cantidad de información, y tal vez incluso una condición Si(If) que añade aún más información. Si usted necesita la misma acción en varios lugares por supuesto puede copiar y pegar, pero también se podría considerar la posibilidad de poner esa acción en su propia tarea separada, y luego usar Realizar-tarea para referirse a ella. De esta manera, usted sólo tiene que editar las acciones complicadas en un solo lugar y los cambios se aplican a todos las tareas que correspondan. Diablos, ni siquiera tiene que ser una acción complicada: si es algo que se utiliza en bastantes lugares, hacer los cambios se vuelve tedioso, salvo que se pueda editar en un solo lugar.
Eventos sucesivos de calendario que se superponen en Tasker
Existe la capacidad de tener perfiles activos mientras duran los eventos del de calendario, pero hay un peligro con este sistema. Si usted tiene dos eventos del calendario sucesivos, digamos uno de 9.00 a 10.00 y otro de 10.00 a 11.00, se podría suponer que el primero se desactiva al mismo tiempo que se activa el segundo. En la práctica eso no ocurre así. Un evento de calendario que dura hasta las 10.00, en Tasker se mantiene hasta que el tiempo supera las 10.00, y eso ocurre a las 10.01.00. Por lo tanto, desde las 10.00.00 a las 10.00.59 ambos eventos estarán activos y eso puede provocar colisiones.
Para evitar esto, los acontecimientos contiguos tienen que ser configurados de forma que el primer evento termine un minuto antes de que el otro comience, en este caso 9,59. Así, el primer evento dejará de ser activo en 9.59.59, y el segundo evento se activará a las 10.00.00.
Contextos de notificación
08-multipleprofiles.jpg
Hay un puñado de aplicaciones que se integran con Tasker, pero todavía queda una gran cantidad de aplicaciones y servicios a los que Tasker no tiene acceso directo. El contexto de evento Notificación a menudo puede ayudar en este tipo de situaciones, porque permite a Tasker reaccionar a las notificaciones creadas por otras aplicaciones, suponiendo que Tasker tenga accesibilidad (un ajuste en la configuración principal del sistema). Puede filtrar por qué aplicación envió la notificación y el título de la notificación, pero por desgracia, no por la descripción. El título notificación también se almacenarán en la variable incorporada %NTITLE, lo que permite utilizarlo en Tasker.
La utilidad del campo de título depende de la aplicación, e incluso la versión del SO. La app de Gmail para Gingerbread crea un título de notificación diferente que la app de Gmail para ICS, y no contiene realmente la información que uno probablemente necesita (como el asunto del mensaje, que se almacena en la descripción de notificación). Esto significa que usted puede crear perfiles que actúan sobre las notificaciones de Gmail, pero olvídese de filtrar por detalles como el asunto (Sin embargo, K-9 Mail es una aplicación de correo electrónico alternativa que tiene la necesaria integración con Tasker). Como he dicho, la utilidad del título de la notificación depende de la aplicación y la versión del sistema operativo.
Además, Tasker sólo es capaz de ver la notificación cuando aparece. No hay contexto de estado para las notificaciones que permanecen activas, lo cual sería útil para detectar la instalación de aplicaciones, la carga de archivos, las sincronizaciones y otros procesos que muestran notificaciones mientras están activos. Tampoco hay evento ni forma de detectar que una notificación desaparece. Es culpa de Android.
A pesar de estas restricciones, el evento Notificación es genial. Yo personalmente lo uso para personalizar las notificaciones de Gmail de correo electrónico dependiendo de la localización (visuales en casa, fuertes vibraciones en la calle), y se puede imaginar usos similares con otras aplicaciones.
Retrasar la activación/desactivación del perfil
09-delay.jpg
A veces uno puede no querer que su perfil se active o desactive en el mismo momento en que el contexto es detectado. Un ejemplo típico sería si usted tiene un perfil de conexión Wi-Fi que no desea desactivar si se queda fuera de cobertura durante unos segundos, o quizás usted quiere que su perfil de reunión se desactive unos minutos después de que termine el plazo indicado en el evento del calendario, dándole margen para salir antes de los sonidos empiecen a molestar. El retraso de una tarea es simple con la acción Esperar, aunque en relación con los perfiles de este tipo es un poco más difícil -pero no mucho.
Supongamos que desea crear un perfil que se activa cuando se conecta a una red WiFi, pero quiere hacerlo de modo que el perfil no se desactiva hasta que el dispositivo se ha desconectado durante 5 minutos sin haber vuelto a conectar en ese tiempo.
Para ello, el verdadero desencadenante para el perfil debe ser otro perfil propio, ambos con sus respectivas tareas de entrada y salida. La tarea de entrada utiliza una acción Establecer-variable %Wifiactive a 1, y luego añade una acción Detener-tarea con el nombre de la tarea de salida (1). La tarea de salida primero usa la acción Esperar 5 minutos, y a continuación Establecer-variable %Wifiactive a 0. Tras eso ya puede crear su perfil original utilizanado el contexto de estado Valor-de-variable con la variable %Wifiactive igual a 1.
Así resulta que su perfil original está comandado por una variable del otro perfil. Ese otro perfil contiene el contexto original pero sus tareas controlan al primer perfil. De esa manera usted puede utilizar la acción Esperar para retrasar realmente la desactivación del perfil principal en 5 minutos. Si el dispositivo se vuelve a conectar durante esos 5 minutos, la tarea de entrada contiene una acción acción Detener-tarea que aborta la tarea de salida para evitar que se desactive el otro perfil.
En conclusión
Probablemente hay cientos de consejos y trucos que ayudan con el uso de Tasker, y estos son sólo los que vinieron a la mente.
------------------- Con autorización expresa del autor, este artículo es una traducción del original ubicado en
http://www.pocketables.com/2012/09/b...ps-tricks.html
Beguinners guide to Tasker, by Andreas Ødegård
Original Copyright @ 2006-2012 CrowdGather. All rights reserved
-------------------
(1) Hemos comprobado que en Tasker versión 4+ no se puede usar la acción Detener-tarea de la forma indicada: desde la tarea de entrada no se puede detener la tarea de salida (o viceversa). Más información sobre ello en http://www.htcmania.com/showthread.php?p=12354445 .
Firmado: Caravantes
Última edición por ATaskREADOS Día 02/02/14 a las 12:56:15
|