Note :
Solution suivante :
- est testé sur Android 4.2.1, COS12 (Android 5.0.2) et CM12.1 (Android 5.1.1) - tous fonctionnant sous Play Store v6.0.5 1
- nécessite un Android enraciné
-
aquí Voici une courte démonstration de la solution
En parcourant le manifeste du Play Store, j'ai supposé que seul le service suivant est susceptible d'être à l'origine de la mise à jour automatique des applications via le Wi-Fi.
com.google.android.finsky.autoupdate.ReschedulerUsingAlarmManager$CheckWifiAndAutoUpdate
J'ai joué avec ce service dans quelques conditions sur différents appareils et je l'ai trouvé utile pour l'objectif en question. Il va sans dire que le paramètre de mise à jour automatique des applications doit être réglé sur "Auto-update apps over Wi-Fi only" dans le Play Store.
Voici ce que vous pouvez faire : Installez un automatisation Une application qui peut exécuter une série d'actions lorsque la source d'alimentation et le Wi-Fi sont connectés et plus tard, déconnectés. J'ai utilisé Tasker ( version d'essai ; guide de l'utilisateur ) comme application d'automatisation.
Nous aurions besoin de deux tâches : une tâche d'entrée et une tâche de sortie. Voir ma réponse aquí pour obtenir de l'aide.
-
Entrez la tâche : (Actions) :
-
Code → Exécuter le shell
- Vous pouvez éventuellement ajouter une ou plusieurs actions pour vous avertir que la procédure de mise à jour a commencé. J'ai utilisé Alert → Flash pour me notifier via un toast.
-
Quitter la tâche : (Actions) :
Cette tâche nécessite Les applets de Busybox sont installés. Voir Comment installer les outils de ligne de commande manquants sur un appareil Android ? pour obtenir de l'aide.
-
Net → Test Net
- Type : Données mobiles activées
- Stocker le résultat dans :
%Mdata
-
Code → Exécuter le shell
- Encore une fois, pour vous notifier, utilisez l'action de votre choix.
A quoi servent ces tâches ?
Lorsque les conditions des deux contextes sont remplies, la tâche d'entrée est exécutée. Les commandes de cette tâche font ces choses dans un ordre séquentiel :
- activer le service du Play Store susmentionné
- forcer l'arrêt du Play Store
- lancer le service du Play Store en question
Et c'est tout pour que la mise à jour automatique commence.
Après être resté activé, chaque fois que le profil se désactive (simplement parce qu'une condition pour un contexte n'est plus remplie), la tâche de sortie s'exécute. Cette tâche de sortie exécute les étapes suivantes dans un ordre séquentiel :
- stocker l'état (activé/désactivé) des données mobiles dans une variable Mdata
-
le travail de ces commandes est de :
- désactiver les données mobiles
- désactiver le Wi-Fi
- forcer l'arrêt du Play Store
- forcer l'arrêt du gestionnaire de téléchargement
J'ai remarqué que si une mise à jour (téléchargement en cours) d'une application est interrompue en raison de l'indisponibilité du Wi-Fi, la barre de progression (notification) est désactivée, l'état de la progression est stocké dans une ligne du tableau. téléchargements de la base de données téléchargements.db . (Cette base de données est située dans le répertoire de données de Download Manager.) Cette ligne contient également l'emplacement du fichier partiellement téléchargé.
Afin de s'assurer que la mise à jour automatique ne se produit pas lors de la prochaine connexion réussie au Wi-Fi et de s'assurer qu'elle ne le fait jamais lorsque le profil n'exécute pas la tâche d'entrée, voici ce que font les autres commandes :
- extraire l'emplacement du fichier partiellement téléchargé à partir de la valeur de la colonne
_data
correspondant à une ligne identifiée par com.Android.vending comme notificationpackage. Notre objectif est de supprimer ce fichier. C'est un petit sacrifice à faire.
- s'il y a effectivement un chemin de fichier sous _données puis l'utiliser pour supprimer le fichier qu'il désigne.
- supprimez cette ligne, sinon, elle sera lue par Download Manager lorsque la connectivité réseau changera (reconnexion à un Wi-Fi) et la mise à jour automatique recommencera.
- Désactiver le service Play Store susmentionné afin que la mise à jour automatique ne commence jamais d'elle-même.
- activer le Wi-Fi
- activer les données mobiles, si elles étaient activées avant l'exécution de cette tâche.
1 Au moment de la création de la première révision de cette réponse, la version actuelle du Play Store n'est certainement pas 6.0.5 mais supérieure. Cependant, aucun de mes appareils n'a reçu de nouvelle mise à jour du Play Store jusqu'à présent.