|
||
|
|
|
|||||||
| Tasker Para hablar de todo lo relacionado con la aplicación tasker |
![]() |
|
|
Herramientas |
|
#1
|
||||
|
||||
|
Saber Aplicaciones instaladas.
Bueno chicos, voy a rizar el rizo.
Hay alguna manera de saber si la aplicación X está instalada? Gracias.
__________________
Última edición por JOSNARO Día 22/07/13 a las 15:53:52. |
|
|
|
#2
|
||||
|
||||
|
Todas las aplicaciones al instalarse crean una carpeta en /data/data con su package name como nombre de carpeta, si con un comando intentamos mostrar el contenido de esa carpeta fallará si no la encuentra (lo que significaría que no está instalada).
Lo primero es averiguar el package name de la app que quieres comprobar. Lo más sencillo es mirar en la URL de su página en google play, pondrá ...id=...&... el package name es lo que va entre "id=" y el "&" que haya despues (o hasta el final de la URL si no hay). Una vez lo tenemos (voy a usar por ejemplo el skype, su packagename es "com.skype.raidera") creamos una acción "Script->Ejecutar consola" y ponemos el comando Código:
ls /data/data/com.skype.raidera De la acción solo nos interesa el resultado, no la salida ni los errores, así que lo almacenamos en una variable (por ejemplo %resultado) y nos acordamos de marcar "Continuar en caso de errores", no hace falta root, asi que no hay por qué marcarlo. Despues en la siguiente acción si %resultado vale 0 es que la carpeta existe y por tanto la aplicación está instalada, si devuelve cualquier otra cosa no lo está. |
| Los siguientes 3 usuarios han agradecido a maid450 su comentario: | ||
|
#3
|
||||
|
||||
|
Ok, entendido. Cuando llegue lo pruebo.
Muchas gracias.
__________________
|
|
#4
|
||||
|
||||
|
Y no sería más útil buscar por el nombre del paquete en /data/app, o en /system/app? puesto que si está instalada, debe de estar en una de esas dos rutas...
|
|
#5
|
||||
|
||||
|
Maid lo he intentado y no me funciona. En el registro de tasker me sale Errignore.
Lo he intentado con varias carpetas y nada. Si lo pruebo en el emulador de consola dice not found. He probado a meter solo ls y entonces si me sale en el emulador un listado de los archivos como sys, temp, etc. También probe la acción de tasker de listar archivos para no tener que utilizar script pero parece que con data no funciona, no mete nada en la variable. Sin embargo con archivos que puedes escoger con el explorador de tasker si. El explorador de tasker no te deja ir a la raíz del sistema y ya te digo que si le escribo yo la ruta no mete el nombre de los archivos. Quiza sea porque file explorer no tiene acceso root como otros exploradores de archivos ?
__________________
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 19/06/13 a las 21:00:12. |
|
#6
|
||||
|
||||
|
Maid lo he intentado y no me funciona. En el registro de tasker me sale Errignore.
Lo he intentado con varias carpetas y nada. Si lo pruebo en el emulador de consola dice not found. He probado a meter solo ls y entonces si me sale en el emulador un listado de los archivos como sys, temp, etc. También probe la acción de tasker de listar archivos para no tener que utilizar script pero parece que con data no funciona, no mete nada en la variable. Sin embargo con archivos que puedes escoger con el explorador de tasker si. El explorador de tasker no te deja ir a la raíz del sistema y ya te digo que si le escribo yo la ruta no mete el nombre de los archivos. Quiza sea porque file explorer no tiene acceso root como otros exploradores de archivos ? ![]() Tal vez en los Samsung no se guarden las aplicaciones en /data/data? pero me parecería raro... Con el ES File explorer si puedes explorar como root, está en "Herramientas -> Explorador Root" mira a ver el contenido de las carpetas de /data a ver si encuentras donde están los datos de las aplicaciones. Después, el comando "ls carpeta" muestra el contenido de una carpeta y el resultado (no la salida) es 0 cuando se ejecuta correctamente (la carpeta existe y se puede listar) y otra cosa si no. No comenté nada de esta solución, es posible hacerlo así, pero ya tienes que buscar en 2 directorios (en /system/app solo están los apks de las apps del sistema y en /data/apps están los demás, en /data/data están las carpetas de datos de TODAS las apps) y además, al menos en mi movil, los apks en /data/apps tienen el nombre de la aplicación más un sufijo variable ("-1", "-2"...) que no se a que se debe, con lo que ya habría que buscar sin tener en cuenta los sufijos... vamos, que lo veo más complicado. |
|
#7
|
||||
|
||||
|
Se me olvido comentarlo pero también probe con root marcado y nada.
Si que están las carpetas con las apps en data/data. Perdón quería decir file magic, o sea el explorador q trae tasker y utiliza tasker. Con este no puedo ver más la raíz del sistema. En fin no es una cosa q sea muy importante, lo único es que en la app que estoy haciendo me gustaría que detectará si el usuario tiene los plugin instalado y que no sea el usuario el que lo tenga q poner, ya que queda un poco cutre. Intentare ver en el foro oficial a ver si hay algo. Lo que me fastidia es que no funcione lo de listar archivos q para mi seria lo más fácil y asequible. Además puedes ponerle coincidencia de patrones con lo cual seria ideal para estos casos.
__________________
Fdo: Mlesir. Miembro del equipo que promueve el foro y el recopilatorio de Tasker http://www.htcmania.com/forumdisplay.php?f=969
|
|
#8
|
||||
|
||||
|
Jksk (544)
A1: Prueba [ Tipo:Package Name Datos:com.intangibleobject.securesettings.plugin Almacenar Resultado en:%cont Continuar Tarea Tras Error:Encendido ] A2: Flash [ Texto:%cont Largo:Apagado ] Con la acción de probar dentro de misceláneo, he conseguido saber si tengo por ejemplo secure settings instalado. Hay que marcar en el menú package name y poner el nombre como dice maid en datos. La verdad es que lo he descubierto de chiripa iba buscando otra cosa y me encontré con esta acción. Le di al menú y estuve curioseando hasta que vi lo de package name y se me encendió la bombilla. Tendré que ver q más cosas puede hacer esta acción, pq tiene más opciones en el menú. Os dejo la transcripción de la tarea para que veáis como si lo tenéis os pone secure settings. Si da error o no encuentra nada os pondrá la variable vacía. Acordaros de marcar seguir con error pq si no se para la tarea. (me encanta tasker tiene tantas cosas que a veces te pasa esto,... y nosotros dándole a los scripts! Jeje). Edito: Puff! Que maravilla! Si le das a la lupa por lo menos en el caso de package name y de acciones, perfiles y eventos te sale un listado para que solo tengas q clikar. En el caso de los contactos parece que si tiene más de un número de teléfono solo funciona si ponemos el primero. Bueno pues creo un nuevo tema y seguimos viendo esta acción ahí para no mezclar. Seguimos aqui: http://www.htcmania.com/showthread.php?p=9258109
__________________
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 26/06/13 a las 05:52:47. |
|
#9
|
||||
|
||||
|
Aunque la consulta concreta del compañero Josnaro parece resuelta, me he dado cuenta de que se puede dar una respuesta al título del hilo:
En Android, el comando PM significa Packet Manager (Gestor de Paquetes) y ofrece algunas posibilidades interesantes. En Tasker, con la acción Ejecutar Consola podemos ejecutar comandos del sistema Android. El comando pm list packages devuelve un listado con todos los nombres (package name) de los paquetes o aplicaciones instaladas, listado que tiene este aspecto: Código:
package:com.google.android.location package:com.tmobile.selfhelp package:com.android.voicedialer package:com.android.defcontainer package:com.android.launcher package:com.google.android.maps.mytracks package:com.android.debugtool package:com.android.contacts package:com.android.phone package:com.tmobile.userkeystool package:com.android.calculator2 package:com.android.htmlviewer package:com.android.providers.calendar package:com.android.bluetooth package:com.android.calendar package:com.android.browser package:com.android.music package:com.google.tts package:com.android.email.policy package:com.android.qxdmlog package:com.android.mms package:com.android.provision package:com.htc.copyright package:com.android.providers.media package:com.android.certinstaller package:com.google.android.deskclock package:com.android.updater package:com.android.settings package:com.google.android.carhome En configuración de la acción Ejecutar Consola, tenemos que escribir un nombre de variable en la casilla Almacenar-Salida-En, y esa variable será la que recoja el listado devuelto por el comando. En las acciones siguientes de la tarea podemos explorar o manipular el contenido de esa variable que contiene el listado. Al ser solo una consulta, supongo que esto funcionará sin Root, aunque no estoy seguro, estaría bien que alguien lo confirmase o desmintiese (confirmado posteriormente por el compañero Soymicmic, ver más abajo). Otro detalle: una vez conocido el package name, se puede construir fácilmente la URL que la app tendría en Google-Play (suponiendo que esté en Google-Play) del siguiente modo: Código:
https://play.google.com/store/apps/details?id=package-name https://play.google.com/store/apps/details?id=com.google.android.maps.mytracks En esa página vemos que el nombre "común" (comercial) de la app es "My Tracks". Más información sobre el comando PM, en el siguiente post del compañero Emilitingo http://www.htcmania.com/showthread.php?p=3390627 Y también en http://www.cyberhades.com/2012/03/01...on-en-android
__________________
Firmado: Caravantes, miembro del equipo que promueve el Subforo de Tasker
Última edición por Caravantes Día 08/07/13 a las 10:21:29. |
|
#10
|
||||
|
||||
|
Muchas gracias por las explicaciones Descripcion Tarea: Código:
Lista Paquetes: A1: Ejecutar consola [ Comando:pm list packages Cuenta atrás (segundos):0 Usar Root:Apagado Almacenar Salida En:%LIS_PACK Almacenar Errores En: Almacenar Resultado en: ] A2: Flash [ Texto:%LIS_PACK Largo:Apagado ] Última edición por soymicmic Día 08/07/13 a las 09:39:10. |
| Gracias de parte de: | ||
![]() |
Estás aquí
|
||||||
|
||||||