¿Cómo puedo saber qué aplicación está usando mi GPS en segundo plano? [duplicar]

Posible duplicado:
¿Cómo verificar qué aplicación usa GPS en Galaxy Nexus?

Vi el ícono de ubicación en la parte superior mientras estaba en la pantalla de inicio de mi Galaxy Nexus. Solo había dos aplicaciones en ejecución y las borré, pero el ícono de ubicación todavía estaba allí. Descubrí que si apago la ubicación y la vuelvo a encender, desaparecerá, pero me gustaría saber cuál de mis aplicaciones está usando esto para poder considerar desinstalarlo o cambiar una configuración.

¿Hay alguna forma de hacer esto? Supongo que tal vez una aplicación que detecte esto o alguna cosa del sistema.

¿Has comprobado la salida de adb logcatalady?
¿Está ejecutando una ROM personalizada como AOKP/CyanogenMod/etc. ? Está el parche automático de PDroid que agrega control para esto y otras cosas relevantes para la privacidad.

Respuestas (1)

En primer lugar, con "claro", ¿a qué te refieres exactamente? Las superposiciones de la interfaz de usuario de muchos fabricantes brindan formas de eliminar las aplicaciones en ejecución de las listas de acceso rápido, como la que obtiene al presionar prolongadamente la tecla de inicio, pero al hacerlo, por lo general, en realidad no se cierra la aplicación. Android, de forma predeterminada, mantiene las aplicaciones ejecutándose en modo "en segundo plano" después de que las abandona, porque es más rápido cambiarlas si ya están en RAM que si las inicia "en frío".

Por lo tanto, a menos que esté "cerrando a la fuerza" las aplicaciones usando la vista Configuración o una aplicación "asesina de tareas", cualquier aplicación que haya estado ejecutando pero que "borró" todavía se ejecuta en "modo de fondo". La mayoría de las aplicaciones hacen muy poco en segundo plano, para economizar en la CPU y, por lo tanto, en el uso de la batería, pero algunas mantendrán cosas como el acceso al GPS. Es probable que cualquier aplicación social que le permita "registrarse" en algún lugar, como Facebook, Foursquare, aplicaciones de "huella", etc., haga esto, de modo que pueda marcar rápidamente su ubicación actual sin esperar a que el GPS vuelva a adquirir satélites y obtenga su localización.

Si está cerrando a la fuerza o eliminando aplicaciones que cree que están usando GPS, y aún ve el ícono de GPS, podría ser una de dos cosas; en primer lugar, la acción de cierre forzado no es una forma "limpia" de cerrar aplicaciones, y muchos no esperarán que se cierren a la fuerza, por lo que si fuerza el cierre de una aplicación que estaba usando GPS, es posible que no limpie cosas como su conexiones a funciones del teléfono como GPS.

En segundo lugar, hay algunos servicios integrados en Android, como el servicio E911, que usan GPS si está disponible y no se pueden cerrar. Entonces, si inicia el GPS para otra cosa, uno de esos servicios puede pedirle al sistema operativo que mantenga las señales adquiridas de los satélites GPS para que puedan mantener su ubicación en caso de que tenga que llamar al 911, hasta que apague manualmente el GPS por completo. (En ese momento, los servicios recurren a métodos de ubicación menos granulares, como la triangulación desde torres de telefonía cercanas o puntos de acceso Wi-Fi conocidos).

EDITAR: para responder a la pregunta real formulada (concepto novedoso, lo sé), no puedo encontrar ninguna aplicación que muestre el uso de GPS que esté disponible en Google Play y no requiera un teléfono rooteado (y / o ROM personalizado, es decir, CyanogenMod, etc. ). Se supone que el que encontré, Spare Parts Plus PRO , lo hace de una manera indirecta, al mostrar el uso de la batería de las aplicaciones instaladas con permiso para usar GPS, pero aparte del testimonio de un usuario aquí (más de un año) puedo ' No encuentro ninguna evidencia de que realmente haga esto (la versión gratuita no lo hace y ninguna documentación dice específicamente que lo hará), y no voy a gastar dinero para averiguarlo solo para darle una respuesta aquí. Perdón. Si quieres probar, solo cuesta $1.75; háznoslo saber al resto.

Lo único que puedo sugerir es buscar un administrador de aplicaciones que enumere los programas en ejecución según los permisos que requieren. Hay varios que enumeran las aplicaciones por permiso; aSpotCat, PermissionDog, App Permission Watcher, etc. Sin embargo, no estoy seguro de cuál de ellos también permitirá filtrar por estado de ejecución actual (PermissionDog muestra un aviso cuando se inicia una aplicación, mostrando lo que puede hacer).

Si encuentra uno, el uso es simple; si se está ejecutando y necesita el GPS, es sospechoso que la aplicación realmente esté usando el GPS en este momento.

Por último, desde un punto de vista técnico, es el sistema operativo Android el que realmente "usa" el GPS del teléfono. La mayoría de las aplicaciones, especialmente las que no requieren rooteo, no pueden controlar directamente ninguna característica de su teléfono; en cambio, le piden al sistema operativo Android que obtenga o configure información sobre esas funciones, utilizando los "administradores de servicios" que Android expone en su API. Una aplicación que necesita su ubicación simplemente le preguntará al servicio LocationManager de Android su ubicación actual, solicitando opcionalmente granularidad "gruesa" o "fina", y Android usará cualquier servicio de ubicación que le haya dicho que puede usar (GPS, torres de telefonía celular). , ubicación del punto de acceso Wi-Fi) para averiguarlo, devolviendo la ubicación y el método utilizado (o diciéndole a la aplicación que no se pudo usar el nivel de granularidad solicitado porque la apagó). Android, AFAIK, no controla qué aplicaciones han realizado solicitudes recientes a través de la API para sus servicios de ubicación (mucho menos cuáles de esas solicitudes requirieron que el servicio gastara recursos significativos para averiguarlo); solo sabe qué aplicaciones tienen permiso para hacerlo, y siempre que al menos una de ellas se esté ejecutando y haya realizado una solicitud, Android mantiene activo el GPS.

El resultado es que lo mejor que puede hacer es cotejar las aplicaciones en ejecución con las aplicaciones que pueden usar GPS, para averiguar qué aplicaciones pueden estar usando GPS en este momento. Si solo hay uno en ejecución que tiene el permiso requerido, es bastante fácil reducirlo. Si hay una docena de aplicaciones o servicios con ese permiso actualmente "ejecutándose" (residentes en RAM), es un poco más difícil (especialmente porque, como dije, algunos de estos pueden ser servicios básicos del teléfono que pueden causar que se bloquee si intenta forzar su cierre).

Buena información, pero ¿cómo responde eso a la pregunta: ¿Cómo puedo averiguar qué aplicación está usando mi GPS en segundo plano?
Ah, sí, solo quise decir que usé la tecla dedicada "aplicaciones en ejecución" en ICS+ para cerrarlas. Me doy cuenta de que eso deja cosas ejecutándose en segundo plano.
Lo que dijo @Izzy. Se me ocurren muchas razones por las que las aplicaciones podrían hacer esto, pero quería saber cuáles. Además, comenzó a suceder en las últimas semanas, por lo que dudo mucho que esté relacionado con un servicio integrado. Incluso si lo es, me gustaría saberlo con certeza.
Desafortunadamente, una búsqueda a través de Google Play de variaciones en "GPS Monitor" o "GPS Usage Tracker" solo mostró aplicaciones que usan GPS para rastrear o monitorear cosas (usted mismo, sus camiones/conductores, sus hijos, etc.) en lugar de rastrear el uso del GPS en sí.
Gracias por mirar en esto. No parece que haya una respuesta obvia, pero esta es una idea útil. No he estado viendo el ícono allí últimamente, así que no estoy seguro de qué está pasando ahora.