Ich habe meine App in den Google Play Store gestellt. Es wurde von vielen Kunden meines Unternehmens installiert. Ich verstehe den Mechanismus, wie die App aktualisiert werden soll.
Die Benutzer sollten das Kontrollkästchen für die automatische Aktualisierung in der Playstore-App für jede App aktivieren, die sie automatisch aktualisieren möchten. Einige Benutzer haben es jedoch deaktiviert oder gar nicht aktiviert.
Die App, die ich geschrieben habe, ist für die Pflegeindustrie und wird von Pflegepersonen verwendet, um häusliche Pflege zu liefern. Einige unserer Kunden haben 1200 Betreuer. Sie müssten alle Betreuer ins Büro rufen, um die Telefone einzeln zu aktualisieren. Dies ist offensichtlich inakzeptabel.
Gibt es eine Möglichkeit, programmgesteuert zu überprüfen, ob es eine aktualisierte Version meiner App im Play Store gibt?
Könnte ich Code haben, der jedes Mal ausgeführt wird, wenn der Benutzer die App startet, die den Play Store überprüft? Wenn es eine aktualisierte Version gibt, kann der Benutzer zum Playstore geleitet werden. Dies bedeutet, dass die automatische Aktualisierung nicht unbedingt überprüft werden muss.
Danke im Voraus
Matt
Antworten:
Update 17. Oktober 2019
https://developer.android.com/guide/app-bundle/in-app-updates
Update 24. April 2019:
Android hat eine Funktion angekündigt, die dieses Problem wahrscheinlich beheben wird. Verwenden der In-App-Update-API: https://android-developers.googleblog.com/2018/11/unfolding-right-now-at-androiddevsummit.html
Original:
Soweit ich weiß, gibt es keine offizielle Google-API, die dies unterstützt.
Sie sollten in Betracht ziehen, eine Versionsnummer von einer API zu erhalten.
Anstatt eine Verbindung zu externen APIs oder Webseiten (wie dem Google Play Store) herzustellen. Es besteht das Risiko, dass sich etwas an der API oder der Webseite ändert. Überprüfen Sie daher, ob der Versionscode der aktuellen App unter der Versionsnummer liegt, die Sie von Ihrer eigenen API erhalten.
Denken Sie daran, wenn Sie Ihre App aktualisieren, müssen Sie die Version in Ihrer eigenen API mit der Versionsnummer der App ändern.
Ich würde empfehlen, dass Sie eine Datei auf Ihrer eigenen Website oder API mit der Versionsnummer erstellen. (Machen Sie eventuell einen Cronjob und machen Sie die Versionsaktualisierung automatisch und senden Sie eine Benachrichtigung, wenn etwas schief geht)
Sie müssen diesen Wert von Ihrer Google Play Store-Seite abrufen (wird in der Zwischenzeit geändert und funktioniert nicht mehr):
Überprüfen Sie in Ihrer App, ob die auf dem Handy verwendete Version unter der Versionsnummer liegt, die auf Ihrer eigenen API angezeigt wird.
Zeigen Sie an, dass sie / er im Idealfall mit einer Benachrichtigung aktualisiert werden muss.
Dinge die du tun kannst
Versionsnummer mit Ihrer eigenen API
Vorteile:
Nachteile:
Versionsnummer auf der Webseite Google Play Store
Vorteile:
Nachteile:
quelle
Current Version
alsVaries with device
Idee aufgeführt, wie dies gelöst werden kann oder ob eine andere Alternative verfügbar ist.Fügen Sie JSoup in die Datei build.gradle Ihrer Apps ein:
und aktuelle Version erhalten wie:
Und führen Sie folgenden Thread aus:
Weitere Informationen finden Sie unter: http://revisitingandroid.blogspot.in/2016/12/programmatisch-check-play-store-for.html
quelle
getPackageManager().getPackageInfo(getPackageName(), 0).versionName
Sie könnten nur verwendenBuildConfig.VERSION_NAME
:)Firebase Remote Config könnte vorerst eine mögliche und zuverlässige Lösung sein, da Google keine API dafür verfügbar gemacht hat.
Überprüfen Sie die Firebase Remote Config Docs
Schritte 1.Erstellen Sie ein Firebase-Projekt und fügen Sie Ihrem Projekt google_play_service.json hinzu
2.Erstellen Sie Schlüssel wie "android_latest_version_code" und "android_latest_version_name" in der Firebase-Konsole-> Remote-Konfiguration
3. Android Code
Holen Sie sich den aktuellen Versionsnamen und Code
4. Halten Sie die Firebase "android_latest_version_code" und "android_latest_version_name" mit Ihrem aktuellen Namen und Code der Produktionsversion auf dem neuesten Stand.
Die Firebase-Fernkonfiguration funktioniert sowohl auf Android als auch auf IPhone.
quelle
Caused by: com.android.tools.r8.utils.AbortException: Error: null, Cannot fit requested classes in a single dex file (# methods: 68703 > 65536)
. In diesem Fall sollten Sie Ihrer Anwendung MultiDex hinzufügen.Sie können Strom erhalten Plays Version mit
JSoup
wie unten mit einigen Änderungen:Antwort von @Tarun funktioniert nicht mehr.
quelle
Es gibt eine AppUpdater- Bibliothek. So schließen Sie ein:
quelle
Die Antwort von @Tarun funktionierte einwandfrei. Aufgrund der jüngsten Änderungen von Google auf der Google Play-Website ist dies jedoch nicht der Fall.
Ändern Sie diese einfach von @Tarun Antwort ..
und vergessen Sie nicht, die JSoup-Bibliothek hinzuzufügen
und auf Oncreate ()
das war's .. Dank diesem Link
quelle
Google hat die API für In-App-Updates eingeführt
Die API unterstützt derzeit zwei Flows:
quelle
Firebase Remote Config ist besser.
Implementieren von Remote Config unter Android
Hinzufügen der Remote-Konfigurationsabhängigkeit
Sobald dies erledigt ist, können wir bei Bedarf in unserer gesamten Anwendung auf die FirebaseRemoteConfig-Instanz zugreifen:
Remote Config-Werte abrufen
Abrufen von serverseitigen Werten
Nachdem wir die neue Version in den Playstore hochgeladen haben, müssen wir die Versionsnummer in Firebase aktualisieren. Wenn es sich nun um eine neue Version handelt, wird der Aktualisierungsdialog angezeigt
quelle
Innerhalb der OnCreate-Methode schreiben Sie den folgenden Code.
Dies gibt Ihnen Play Store-Version der App ..
Dann müssen Sie die App-Version wie unten überprüfen
Danach können Sie es mit der Store-Version vergleichen und Ihre eigenen Update-Bildschirme einrichten
Und fügen Sie VersionChecker.class wie folgt hinzu
quelle
Aus einer Hybridanwendung POV. Dies ist ein Javascript-Beispiel. Ich habe eine Fußzeile "Update verfügbar" in meinem Hauptmenü. Wenn ein Update verfügbar ist (dh meine Versionsnummer in der Konfigurationsdatei ist kleiner als die abgerufene Version, zeigen Sie die Fußzeile an). Dadurch wird der Benutzer zum App / Play Store weitergeleitet, wo der Benutzer auf die Schaltfläche "Update" klicken kann.
Ich erhalte auch die neuen Daten (z. B. Versionshinweise) und zeige diese beim Anmelden modal an, wenn es das erste Mal in dieser Version ist.
Legen Sie auf Gerätebereit Ihre Geschäfts-URL fest
Die Methode Update Available kann beliebig oft ausgeführt werden. Meins wird jedes Mal ausgeführt, wenn der Benutzer zum Startbildschirm navigiert.
iOS-Rückruf: Apple hat eine API, die sehr einfach zu bekommen ist
Android Callback: PlayStore muss man kratzen, da man sieht, dass die Version relativ einfach zu greifen ist und was neu ist, nehme ich das HTML anstelle des Textes, da ich auf diese Weise ihre Formatierung verwenden kann (dh neue Zeilen usw.)
Die Open-Store-Logik ist einfach, aber der Vollständigkeit halber
Stellen Sie sicher, dass Play Store und App Store auf die Whitelist gesetzt wurden:
quelle
Richten Sie einen Server ein, der eine HTTP-URL bereitstellt, die die neueste Version meldet, und verwenden Sie dann einen AlarmManager, um diese URL aufzurufen und festzustellen, ob die Version auf dem Gerät mit der neuesten Version übereinstimmt. Wenn dies nicht der Fall ist, wird eine Nachricht oder Benachrichtigung angezeigt und zum Upgrade an den Markt gesendet.
Es gibt einige Codebeispiele: Wie können Benutzer in der App nach der neuesten App-Version suchen?
quelle
Abgesehen von der Verwendung von JSoup können wir alternativ einen Mustervergleich durchführen, um die App-Version aus dem PlayStore zu erhalten.
Um das neueste Muster aus dem Google Playstore abzugleichen, müssen
<div class="BgcNfc">Current Version</div><span class="htlgb"><div><span class="htlgb">X.X.X</span></div>
wir zuerst die obige Knotensequenz abgleichen und dann aus der obigen Sequenz den Versionswert abrufen. Unten ist das Code-Snippet für dasselbe:Ich habe es dadurch gelöst, da dies auch für die neuesten Änderungen im Google Playstore funktioniert. Hoffentlich hilft das.
quelle
quelle
Es gibt keine offizielle GooglePlay-API dafür.
Sie können diese inoffizielle Bibliothek jedoch verwenden , um App-Versionsdaten abzurufen.
Und wenn das oben genannte für Sie nicht funktioniert, können Sie jederzeit eine http-Verbindung zur Seite Ihrer App herstellen (z. B. https://play.google.com/store/apps/details?id=com.shots.android&hl=de ) und Analysieren Sie das Feld "Aktuelle Version".
quelle
Sie können versuchen, den folgenden Code mit Jsoup zu verwenden
quelle
bestätigte nur, dass diese Methode jetzt funktioniert:
quelle
Google hat die In-App-Update-API eingeführt. Auf diese Weise können wir den Benutzer bitten, die App innerhalb der Anwendung zu aktualisieren. Wenn der Benutzer dies akzeptiert, können wir die neueste App direkt herunterladen und ohne Weiterleitung zum Playstore installieren. Weitere Details finden Sie unter dem folgenden Link
link1 link2
quelle
Google hat die In-App-Update- Funktion eingeführt ( https://developer.android.com/guide/app-bundle/in-app-updates) ). Sie funktioniert unter Lollipop + und bietet Ihnen die Möglichkeit, den Benutzer nach einem Update mit einem netten zu fragen Dialog (FLEXIBLE) oder mit obligatorischer Vollbildmeldung (IMMEDIATE).
So wird das flexible Update aussehen:
und hier ist der sofortige Update-Ablauf:
Sie können meine Antwort hier unter https://stackoverflow.com/a/56808529/5502121 überprüfen , um den vollständigen Beispielcode für die Implementierung von flexiblen und sofortigen Aktualisierungsabläufen zu erhalten. Ich hoffe es hilft!
quelle