Nota :
Siguiente solución:
- se prueba en Android 4.2.1, COS12 (Android 5.0.2) y CM12.1 (Android 5.1.1); todos ellos ejecutan Play Store v6.0.5 1
- requiere un Android rooteado
- Aquí hay una breve demostración de la solución
Mientras navegaba por el manifiesto de Play Store, tuve la suposición de que solo el siguiente servicio es probablemente el iniciador de la actualización automática de aplicaciones a través de Wi-Fi.
com.google.android.finsky.autoupdate.ReschedulerUsingAlarmManager$CheckWifiAndAutoUpdate
Jugué con ese servicio en pocas condiciones en diferentes dispositivos y lo encontré útil para el objetivo en cuestión. No hace falta decir que la configuración de actualización automática de las aplicaciones debe establecerse en "Actualización automática de aplicaciones solo a través de Wi-Fi" en Play Store.
Esto es lo que puede hacer: instale una aplicación de automatización que pueda ejecutar una serie de acciones cuando la fuente de alimentación y el Wi-Fi estén conectados y luego desconectados. Solía Tasker ( versión de prueba ; userguide ) como la aplicación de automatización.
Necesitaríamos dos tareas: una tarea de entrada y una tarea de salida. Vea mi respuesta aquí para obtener ayuda relacionada.
Ingrese la tarea : (Acciones):
Código → Ejecutar Shell
- Opcionalmente, puede agregar una o más acciones para notificarse que el procedimiento de actualización ha comenzado. Usé Alert → Flash para notificarme a mí mismo a través de un brindis.
Tarea de salida : (Acciones):
Esta tarea requiere que se instalen los applets de Busybox. Consulte ¿Cómo instalo las herramientas de línea de comandos que faltan en un dispositivo Android? para ayuda relacionada.
Net → Test Net
- Tipo: Datos móviles habilitados
- Almacenar resultado en:
%Mdata
Código → Ejecutar Shell
- Nuevamente, para notificarte a ti mismo, usa cualquier acción que elijas.
¿Qué hacen esas tareas?
Cuando se cumplen las condiciones para ambos contextos, se ejecuta la tarea enter. Los comandos en esa tarea hacen estas cosas en orden secuencial:
- habilitar el servicio de Play Store mencionado anteriormente
- forzar-detener Play Store
- iniciar dicho servicio de Play Store
Y eso es todo para que comience la actualización automática.
Después de permanecer activado, cada vez que el perfil se desactiva (simplemente porque una condición para un contexto ya no se cumple) la tarea de salida se ejecutará. Esa tarea de salida ejecuta los siguientes pasos en orden secuencial:
- almacenar el estado (habilitado / deshabilitado) de datos móviles en una variable Mdata
el trabajo de esos comandos es:
- deshabilitar datos móviles
- deshabilitar Wi-Fi
- forzar-detener Play Store
- gestor de descargas de detención forzada
Me di cuenta de que si hay una actualización (descarga en curso) para una aplicación se interrumpe debido a la falta de disponibilidad de Wi-Fi, la barra de progreso (notificación) se desestimó, el estado de avance se almacena en una fila en la tabla de descargas de bases de datos descargas .db . (Esa base de datos se encuentra en el directorio de datos de Download Manager). Esa fila también contiene la ubicación del archivo parcialmente descargado.
Para asegurarse de que la actualización automática no ocurra en la próxima conexión exitosa a Wi-Fi y asegurarse de que nunca lo haga cuando el perfil no esté ejecutando la tarea enter, lo siguiente es lo que hacen el resto de los comandos:
- extraer la ubicación del archivo parcialmente descargado del valor en la columna
_data
correspondiente a una fila identificada por com.android.vending como paquete de notificaciones. Nuestro objetivo es eliminar ese archivo. Este es un pequeño sacrificio para hacer.
- si de hecho hay una ruta de archivo debajo de _data , úsela para eliminar el archivo señalado por ella.
- elimine esa fila, de lo contrario, Download Manager la leerá cuando cambie la conectividad de la red (reconectada a un Wi-Fi) y la actualización automática comenzará nuevamente.
- deshabilite el servicio de Play Store antes mencionado para que la actualización automática nunca comience por sí sola
- habilitar Wi-Fi
- habilitar datos móviles, si se habilitaron antes de ejecutar esta tarea.
1 En el momento de crear la primera revisión de esta respuesta, la versión actual de Play Store definitivamente no es 6.0.5 sino superior. Sin embargo, ninguno de mis dispositivos ha recibido más actualizaciones de Play Store hasta el momento.