Acceder

Ver la Versión Completa : Congelar (deshabilitar) y descongelar (habilitar) aplicaciones con Tasker


tevaadarelsol
06/07/13, 19:32:24
Bueno pues aquí os dejo un aporte de algo que he descubierto que puede hacerse con Tasker.

Se trata de emular la función de Titanium Backup para congelar (deshabilitar) y descongelar (habilitar) aplicaciones. Para los que no conozcan Titanium Backup, estas funciones lo que hacen es habilitar o deshabilitar una aplicación, de forma que no salga en el menú de aplicaciones ni pueda ejecutarse, como si estuviera desinstalada pero sin estarlo, por lo que no se pierden los datos guardados de las mismas ni sus configuraciones.

Para ello deberemos utilizar la acción de ejecutar en consola, escribiendo las siguientes ordenes, y marcando la casilla de Usar Root:

Congelar (deshabilitar) una aplicación: pm disable <nombre_del_paquete>
Descongelar (habilitar) una aplicación: pm enable <nombre_del_paquete>

Espero que os sirva de ayuda.

Un saludo!

mlesir
06/07/13, 21:32:48
Gracias tevaadarelsol, buen aporte. Un aporte sobre esto: andreas ordegard en la Web pocketables (enlace en el recopilatorio) escribió sobre como usar esto para que cuando utilicemos una acción que nos requiera elegir con que app queremos hacerla no nos lo pregunte, dado que congelaremos todas las app menos la que queremos utilizar. De esta manera android no nos pregunta pq solo hay una app q utilizar.

gonza28
07/07/13, 00:06:42
muy bueno. me lo anoto.:ok:

Caravantes
07/07/13, 00:48:34
Congelar (deshabilitar) y descongelar (habilitar) aplicaciones con Tasker

Muchas gracias, moreno. Esto es muy interesante.

Creo que conviene hacer una pequeña matización. No basta con marcar la casilla de usar Root. Además, hay que tener acceso Root. Creo que esto debería aclararse desde el primer mensaje: aunque algunos de nosotros ya lo demos por sabido, otros no lo entenderán si no se les dice claramente.

Para los usuarios menos puestos en estos temas, otro detalle interesante es respecto a los nombres de los paquetes o aplicaciones. Aquí nos estamos refiriendo al package name, que es el nombre técnico que las apps tienen dentro de Android. Quien necesite más aclaraciones sobre esto, que lea el siguiente hilo:
http://www.htcmania.com/showthread.php?p=8678272

Como soy curioso he investigado un poco más sobre este comando PM y he encontrado una página titulada "Congelar una aplicación en Android" donde lo explican esto mismo con bastante detalle:
- ¿Qué significa eso de congelar (freeze) una aplicación?
- ¿Por qué quiere uno congelar una aplicación en vez de desinstalarla o borrarla?
- Razones para congelar una aplicación
- ¿Cómo se congela una aplicación?
http://www.cyberhades.com/2012/03/01/congelar-una-aplicacion-en-android/

Más información sobre PM, en el siguiente post del compañero Emilitingo
http://www.htcmania.com/showthread.php?p=3390627

Por cierto, PM significa Packet Manager (Gestor de Paquetes) y esas páginas también explican las distintas sintaxis que permite este comando. Me ha parecido especialmente interesante el siguiente detalle. La sintaxis pm list packages devuelve un listado con todos los nombres (package name) de los paquetes o aplicaciones instaladas. A mayores, pm list packages -f devuelve el directorio o carpeta correspondiente. Con esto se puede dar respuesta a quienes preguntaban si en Tasker era posible saber las apps instaladas. He escrito un mensaje explicándolo
http://www.htcmania.com/showthread.php?p=9376091

Además, puedes obtener el listado de los paquetes deshabilitados usando pm list packages -d (disabled) y los paquetes habilitados con pm list packages -e (enabled).

gonza28
07/07/13, 01:08:50
Por cierto, PM significa Packet Manager (Gestor de Paquetes) y esas páginas también explican las distintas sintaxis que permite este comando. Me ha parecido especialmente interesante el siguiente detalle. La sintaxis pm list packages devuelve un listado con todos los nombres (package name) de los paquetes o aplicaciones instaladas. A mayores, pm list packages -f devuelve el directorio o carpeta correspondiente.

Además, puedes obtener el listado de los paquetes deshabilitados usando pm list packages -d y los paquetes habilitados con pm list packages -e.

Interesante tambien. tips para no olvidar:ok:

He probado el pm list packages, guardo resultados en una variable: %APP segunda accion un poup con esa variable y el resultado es 0 (cero) cual sera el error mio?

EDITO. el resultado esta en: Almacenar salida y no en Resultado

Caravantes
07/07/13, 01:59:40
He probado el pm list packages, guardo resultados en una variable: %APP segunda accion un poup con esa variable y el resultado es 0 (cero) cual sera el error mio?

El primer error es no mostrarnos la tarea que has hecho.
http://www.htcmania.com/showthread.php?p=8852245

gonza28
07/07/13, 02:17:50
se como exportar. crei que con 2 acciones solamente y teniendo en cuenta que solo lo hablo al pasar ya que veré esta accion mas adelante si me hace falta implementarla en algun projecto, no hacia falta hacer todo esto. solo una accion de ejecutar consola y mostrar el resultado en algun lado. el popup no me sirtve ya que se lee muy chico. he creado una escena (esto para probar) añadi un elemento texto con la variable %APP un boton con la accion de consola y en ese cuadro de texto me tira el resultado de la accion consola. o sea me ha dado los paquetes instalados. no todos, si algunos.

v<TaskerData sr="" dvi="1" tv="4.1u3m">
<Task sr="task25">
<cdate>1373152154417</cdate>
<edate>1373156606953</edate>
<id>25</id>
<nme>Prueba</nme>
<pri>10</pri>
<Action sr="act0" ve="3">
<code>123</code>
<Str sr="arg0" ve="3">pm list packages</Str>
<Int sr="arg1" val="0"/>
<Int sr="arg2" val="1"/>
<Str sr="arg3" ve="3">%APP</Str>
<Str sr="arg4" ve="3"/>
<Str sr="arg5" ve="3"/>
</Action>
<Action sr="act1" ve="3">
<code>550</code>
<Str sr="arg0" ve="3">Packages Lista</Str>
<Str sr="arg1" ve="3">%APP</Str>
<Str sr="arg2" ve="3"/>
<Str sr="arg3" ve="3">Popup</Str>
<Int sr="arg4" val="5"/>
<Int sr="arg5" val="1"/>
</Action>
</Task>
</TaskerData>

Jusss
07/07/13, 21:17:28
Mi idea con este comando es congelar la play store que siempre esta en segundo plano y descongelarla cuando este en mi casa con wii fi para actualizar aplicaciones. Use el comando que explicó cervantes para saber las aplicaciónes instaladas y me salen pero no aparece la play store alguien sabe cual seria su nombre de paquete?

mlesir
07/07/13, 22:16:27
No tenia ni idea de que teníamos nada más ni menos que al propio Cervantes en el foro! Jeje...

Gonza lo que has puesto es el xml y con eso, yo por lo menos, no hay Dios que se entere. Tienes que elegir la opción "exportar descripción a portapapeles" pero la q pone eso a secas no la que pone xml.

Juss lo de ver el nombre lo explica maid en otro post. Tienes que fijarte en el url del navegador cuando te metes en el play store. Una parte de esa url coincide con el nombre del paquete.

Jusss
07/07/13, 22:26:54
Juss lo de ver el nombre lo explica maid en otro post. Tienes que fijarte en el url del navegador cuando te metes en el play store. Una parte de esa url coincide con el nombre del paquete.
Pasa que lo que yo quería es el nombre del paquete de la play store para congelar la store, pero con el comando salen todos los programas que tengo menos ese o tendrá algún nombre que hace que yo no reconosca dicho paquete
Ya lo encontre ,por si alguien le interesa es: pm disable com.android.vending la asocie que se active al salir de casa y descongele al estar en casa

maid450
07/07/13, 23:12:15
Juss lo de ver el nombre lo explica maid en otro post. Tienes que fijarte en el url del navegador cuando te metes en el play store. Una parte de esa url coincide con el nombre del paquete.

El package name suele contener el nombre de la app, pero son cosas independientes, no tiene por qué.
Como lo elige el programador lo más habitual es que sea así, pero la play store sin ir más lejos es una excepción, como juss ha dicho, su package name es com.android.vending

Jusss
08/07/13, 00:01:55
Estuve probando descongelar y congelar un programa que bloquea con contraseña la pantalla cuando lo descongeló se desactiva pero al volver a descongelar no se activa si primero no se ejecuta hay algún comando para iniciar un paquete ?

tevaadarelsol
08/07/13, 00:12:26
Estuve probando descongelar y congelar un programa que bloquea con contraseña la pantalla cuando lo descongeló se desactiva pero al volver a descongelar no se activa si primero no se ejecuta hay algún comando para iniciar un paquete ?

Si, puedes simplemente cargar una aplicación

Jusss
08/07/13, 00:25:25
Si, puedes simplemente cargar una aplicación

Pero si la cargo con ”iniciar aplicacion” en tasker se me pone en primer plano abierta yo quiero que vuelva a ejecutarse en segundo plano sin que se me abra en l pantalla . Por ejemplo como cuando se inician aplicaciónes en bot como el watsapp que no se te ejecutan encima de la pantalla sino que se ejecutan imperceptibles , no se si me explicó

tevaadarelsol
08/07/13, 00:53:11
Pero si la cargo con ”iniciar aplicacion” en tasker se me pone en primer plano abierta yo quiero que vuelva a ejecutarse en segundo plano sin que se me abra en l pantalla . Por ejemplo como cuando se inician aplicaciónes en bot como el watsapp que no se te ejecutan encima de la pantalla sino que se ejecutan imperceptibles , no se si me explicó

Vale, entiendo lo que quieres decir. Eso que necesitas se denomina servicio, que no es más que una aplicación que se queda en ejecución en segundo plano, sin intervención del usuario, y que se "activa" en base a un evento, en tu caso al desbloquear la pantalla.

Creo (no me hagas mucho caso porque hablo sin estar demasiado seguro) que entonces lo que necesitas es jugar con los intents para iniciar el servicio de esa aplicación, pero ahí ya no puedo ayudarte puesto ue no controlo de ese tema, a ver si alguien puede echarte una mano.

Jusss
08/07/13, 01:05:59
[QUOTE=tevaadarelsol;9383310]Vale, entiendo lo que quieres decir. Eso que necesitas se denomina servicio, que no es más que una aplicación que se queda en ejecución en segundo plano, sin intervención del usuario, y que se "activa" en base a un evento, en tu caso al desbloquear la pantalla.

Creo que es mas sencillo lo que quiero: supongamos que congele el programa que bloquea llamadas, al descongelar, esta activo otra vez en el teléfono, pero no esta funcionando como tarea en segundo plano ya que pra eso lo tengo que abrir manualmente otra vez. Si yo uso ejecutar programa se me abre encima de lo que este haciendo y tengo que pone el botón atrás y que quede en segundo plano otra vez, lo que yo quiero es saltearme el paso y que se ejecute solo, similar a cuando gmail se inicia cuando prendes el cel que se ejecuta en segundo plano y en ningún momento se abre. Jaja me estoy haciendo un lio

tevaadarelsol
08/07/13, 01:43:28
En ese caso puedes hacer que tras descongelarla, se inicie la aplicacion, y seguidamente pones una acción de ejecutar consola marcando la opción de usar root, y escribes "input keyevent 4" sin las comillas. Esto lo que hace es simular la pulsación del botón atrás, por lo que se saldrá de la aplicación quedando ésta en segundo plano.

Caravantes
08/07/13, 07:50:46
Pero si la cargo con ”iniciar aplicacion” en tasker se me pone en primer plano abierta yo quiero que vuelva a ejecutarse en segundo plano sin que se me abra en l pantalla

Después de
1 Iniciar aplicación
Tines varias opciones para que otra acción deje la app en segundo plano. Puébalas y elije la que te funcione mejor:
2 Volver a Inicio
2 Matar aplicación (pero sin marcar la casilla Root)
2 Ejecutar Consola input keyevent 4 (como ha dicho Moreno)

Caravantes
15/07/13, 00:41:58
Congelar (deshabilitar) una aplicación: pm disable Descongelar (habilitar) una aplicación: pm enable

Con las últimas versiones de Android, esto se puede hacer directamente, a mano, desde los ajustes de Android, es muy fácil y no hay necesidad de Root. Lo explican en el siguiente artículo
http://www.elandroidelibre.com/2013/07/especial-desactivar-aplicaciones-notificaciones-y-bloatware-en-android-sin-root.html

Otra cosa es que Tasker pueda hacerlo de forma automática cuando se den las circunstancias de algún contexto.

ATaskREADOS
18/07/13, 16:59:52
Tevaadarelsol y Caravantes muchas gracias y aqui teneis la copa ( con un poco de retraso). Muchas gracias y enhorabuena por la aportación.

:campeon: