Me gustaría que las aplicaciones se actualicen automáticamente cuando mi teléfono esté enchufado (cargando) y en wifi. Puedo permitir fácilmente la actualización automática solo cuando el wifi está activado con la opción adecuada en la configuración de Play Store, pero no puedo evitar que se produzcan actualizaciones automáticas si el teléfono está funcionando con batería.
Esto está causando un agotamiento innecesario de la batería cuando estoy usando mi teléfono con wifi en casa. Dado que la actualización automática de aplicaciones es más un trabajo de demonio que una tarea de tiempo crítico, no puedo creer que no sea una estrategia estándar de ahorro de energía.
¿Conoce alguna aplicación o solución del sistema (incluso si el dispositivo está rooteado) para lograr esto?
Nota :
siguiente solución:
Mientras navegaba por el manifiesto de Play Store, adiviné 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 bajo 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 "Actualizar automáticamente las 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. Usé Tasker ( versión de prueba ; guía de usuario ) como la aplicación de automatización.
Perfil: Configure dos contextos. Consulte ¿Cómo crear un perfil con contexto múltiple en Tasker? para cualquier ayuda relacionada
Estaríamos necesitando 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
Dominio:
pm habilitar com.android.vending/com.google.android.finsky.autoupdate.ReschedulerUsingAlarmManager\$CheckWifiAndAutoUpdate; soy force-stop com.android.vending; soy startservice com.android.vending/com.google.android.finsky.autoupdate.ReschedulerUsingAlarmManager\$CheckWifiAndAutoUpdate
Salir de la tarea : (Acciones):
Esta tarea requiere que se instalen los subprogramas de Busybox. Consulte ¿Cómo instalo las herramientas de línea de comandos que faltan en un dispositivo Android? para obtener ayuda relacionada.
Red → Red de prueba
%Mdata
Código → Ejecutar Shell
Dominio:
deshabilitación de datos de svc; deshabilitar wifi svc; soy force-stop com.android.vending; Soy force-stop com.android.providers.downloads; down_path=$(consulta de contenido --uri content://downloads/my_downloads --projection _data --where "notificationpackage='com.android.vending'"); [[ "$down_path" != "No se encontró ningún resultado". ]] && echo $camino_descendente | sed 's/.*=//g' | xargs rm -f || eco continuar; eliminación de contenido --uri content://downloads/my_downloads --where "notificationpackage='com.android.vending'" pm inhabilite com.android.vending/com.google.android.finsky.autoupdate.ReschedulerUsingAlarmManager\$CheckWifiAndAutoUpdate; habilitar wifi svc; [[ "%Mdata" == "sí" ]] && habilitación de datos de svc || echo sin hacer nada;
Cuando se cumplen las condiciones para ambos contextos, se ejecuta la tarea de entrada. Los comandos en esa tarea hacen estas cosas en orden secuencial:
Y eso es todo para que comience la actualización automática.
Después de permanecer activado, siempre que el perfil se desactive (simplemente porque una condición para un contexto ya no se cumple) se ejecutará la tarea de salida. Esa tarea de salida ejecuta los siguientes pasos en orden secuencial:
el trabajo de esos comandos es:
Noté que si se interrumpe una actualización (descarga en progreso) de una aplicación debido a la falta de disponibilidad de Wi-Fi, la barra de progreso (notificación) se descarta, el estado del progreso se almacena en una fila en la tabla de descargas de la base de datos . .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 descargado parcialmente.
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 de ingreso, lo siguiente es lo que hacen el resto de los comandos:
_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 que hacer.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.
Lo más cerca que he llegado es la combinación de dos configuraciones. Hago esto en dos dispositivos, uno con Android 4.4.4 (KitKat) y otro con Android 5.0.2 (Lollipop).
Parece recibir actualizaciones al menos un poco más a menudo cuando está enchufado. No es perfecto, pero no es una mala solución a medias, y no requiere Tasker ni rooteo.
Esto se puede lograr usando Tasker (aplicación paga). En Tasker, el Perfil puede definirse teniendo las siguientes condiciones. Tiene poca curva de aprendizaje, pero esta aplicación puede reemplazar casi muchas aplicaciones.
A continuación se muestra el perfil de muestra,
Cuando la batería > X% y Wifi está ENCENDIDO y la carga está habilitada
Activar sincronización automática activada
Esta es solo la muestra, puede especificar la condición según sus requisitos. Dado que este es un tema aparte, lo animo a buscar en Google Tasker en los foros de xda.
Hay un ticket abierto ahora en Google Code, por lo que esperamos que esta función se agregue en una versión futura.
https://code.google.com/archive/p/android-developer-preview/issues/1511
prl77