Hinweis :
Folgende Lösung:
- wird auf Android 4.2.1, COS12 (Android 5.0.2) und CM12.1 (Android 5.1.1) getestet - alle mit Play Store v6.0.5 1
- erfordert ein gerootetes Android
- Hier ist eine kurze Demo der Lösung
Beim Durchsuchen des Manifests von Play Store bin ich zu der Annahme gelangt, dass wahrscheinlich nur der folgende Dienst die automatische Aktualisierung von Apps über Wi-Fi initiiert.
com.google.android.finsky.autoupdate.ReschedulerUsingAlarmManager$CheckWifiAndAutoUpdate
Ich habe mit diesem Dienst unter wenigen Bedingungen auf verschiedenen Geräten gespielt und fand ihn für das betreffende Ziel nützlich. Es versteht sich von selbst, dass die Einstellung für die automatische Aktualisierung von Apps im Play Store auf "Apps nur über WLAN automatisch aktualisieren" festgelegt werden sollte.
Folgendes können Sie tun: Installieren Sie eine Automatisierungs- App, die eine Reihe von Aktionen ausführen kann, wenn Stromquelle und WLAN verbunden und später getrennt werden. Ich habe Tasker ( Testversion ; Userguide ) als Automatisierungs-App verwendet.
Wir würden zwei Aufgaben benötigen: eine Eintrittsaufgabe und eine Austrittsaufgabe. Siehe meine Antwort hier für verwandte Hilfe.
Aufgabe eingeben : (Aktionen):
Code → Shell ausführen
- Sie können optional eine oder mehrere Aktionen hinzufügen, um sich zu benachrichtigen, dass der Aktualisierungsvorgang begonnen hat. Ich habe Alert → Flash verwendet, um mich über einen Toast zu benachrichtigen.
Aufgabe beenden : (Aktionen):
Für diese Aufgabe müssen die Busybox-Applets installiert sein. Siehe Wie installiere ich fehlende Befehlszeilentools auf einem Android-Gerät? für verwandte Hilfe.
Netz → Netz testen
- Typ: Mobile Daten aktiviert
- Ergebnis speichern in:
%Mdata
Code → Shell ausführen
- Um sich erneut zu benachrichtigen, verwenden Sie eine Aktion Ihrer Wahl.
Was machen diese Aufgaben?
Wenn die Bedingungen für beide Kontexte erfüllt sind, wird die Eingabetask ausgeführt. Die Befehle in dieser Task führen die folgenden Aktionen in sequenzieller Reihenfolge aus:
- Aktivieren Sie den oben genannten Play Store-Dienst
- Wiedergabestopp erzwingen
- starte den besagten Play Store Dienst
Damit beginnt das automatische Update.
Nach der Aktivierung wird die Exit-Task ausgeführt, sobald das Profil deaktiviert wird (einfach weil eine Bedingung für einen Kontext nicht mehr erfüllt ist). Diese Exit-Task führt die folgenden Schritte nacheinander aus:
- Speichern Sie den Status (aktiviert / deaktiviert) von mobilen Daten in einer Variablen Mdata
Die Aufgabe dieser Befehle ist:
- mobile Daten deaktivieren
- Deaktiviere WiFi
- Wiedergabestopp erzwingen
- Download-Manager erzwingen
Ich habe festgestellt, dass, wenn ein Update (Download in Bearbeitung) für eine App aufgrund der Nichtverfügbarkeit von Wi-Fi unterbrochen wird, der Fortschrittsbalken (Benachrichtigung) ausgeblendet wird und der Status des Fortschritts in einer Zeile in der Tabelle Downloads von Datenbank- Downloads gespeichert wird .db . (Diese Datenbank befindet sich im Datenverzeichnis von Download Manager.) Diese Zeile enthält auch den Speicherort der teilweise heruntergeladenen Datei.
Um sicherzustellen, dass die automatische Aktualisierung bei der nächsten erfolgreichen Wi-Fi-Verbindung nicht erfolgt, und um sicherzustellen, dass dies niemals geschieht, wenn das Profil die Eingabetask nicht ausführt, führen die folgenden Befehle aus:
- Extrahieren Sie den Speicherort der teilweise heruntergeladenen Datei aus dem Wert in der Spalte
_data
, der einer Zeile entspricht, die durch com.android.vending als Benachrichtigungspaket gekennzeichnet ist. Wir sind bemüht, diese Datei zu löschen. Dies ist ein kleines Opfer.
- Wenn sich unter _data tatsächlich ein Dateipfad befindet , löschen Sie damit die Datei, auf die er verweist .
- Löschen Sie diese Zeile. Andernfalls wird sie vom Download Manager gelesen, wenn sich die Netzwerkverbindung ändert (erneut mit einem Wi-Fi verbunden) und die automatische Aktualisierung erneut gestartet wird.
- Deaktivieren Sie den oben genannten Play Store-Dienst, damit die automatische Aktualisierung niemals von alleine beginnt
- Aktivieren Sie Wi-Fi
- Aktivieren Sie mobile Daten, wenn diese vor dem Ausführen dieser Aufgabe aktiviert wurden.
1 Zum Zeitpunkt der Erstellung der ersten Überarbeitung dieser Antwort ist die aktuelle Play Store-Version definitiv nicht 6.0.5, sondern höher. Bislang hat jedoch keines meiner Geräte ein weiteres Play Store-Update erhalten.