Wie erkenne ich bestimmte apk build, auch wenn Benutzer Update apk in Google Play

8

Ich muss Benutzer mit spezifischen apk build erkennen. Dieser Build hat einige Funktionen im Vergleich zu normalen apk (wie einige Funktionen sind PRO beim Start).

%Vor%

Ich habe darüber nachgedacht, einige Daten in der Datenbank zu speichern, also selbst wenn ich apk I aktualisiere, werde ich Daten haben, egal welche Version der Benutzer haben wird.

Das Problem tritt auf, wenn der Benutzer die Anwendung nicht ausgeführt, sondern sofort auf die nächste Version aktualisiert hat. Der Benutzer hat sqlite nicht initialisiert, so dass keine Daten gespeichert wurden.

Gibt es eine Möglichkeit, Daten zu behalten und wiederzuverwenden, selbst wenn der Benutzer die Basis-APK auf eine neuere Version aktualisiert?

    
deadfish 11.08.2017, 11:39
quelle

4 Antworten

3

Das geht nicht, zumindest nicht ohne root oder andere "Patch" -Lösungen.

Es gibt ein paar Lösungen, die nicht gut funktionieren und etwas Vorbereitung brauchen.

Lösung 1:

Erstellen Sie eine zweite App, die vorinstalliert sein muss und über einen PACKAGE_ADDED -Empfänger verfügt. Onec es empfängt die Installation Ihrer App, es wird es mindestens onec ausführen.

Lösung 2:

Erstellen Sie einen BOOT_COMPLETED Empfänger, aber das bedeutet, dass das Gerät neu gestartet werden muss, um aktiviert zu werden. Auch mit dieser Lösung kann es funktionieren oder nicht. Seit Android 3.1 hat google eine Sicherheitsrichtlinie hinzugefügt, die (die meisten Geräte) erfordert, dass die App mindestens einmal gestartet wurde, um in den activate-state zu gelangen (einige Hersteller haben diese Sicherheitsrichtlinie nicht).

Lösung 3: (Nur funktionierende Lösung)

Erstellen Sie ein anderes Paket für Ihre "Kunden-App". Onec die App wird von Playstore installiert und gestartet, es wird überprüft, ob eine App mit dem Kunden-Namespace installiert ist. Wenn ja, dann wird es beginnen, Ihre Kunden-Sqlite-Stuff und deinstallieren Sie die App nach.

Beispiel:

com.myapp.customer - & gt; Eingerichtet com.myapp.playstore - & gt; installiert - & gt; gestartet - & gt; Überprüfen Sie, ob com.myapp.customer installiert ist und aktivieren Sie die "Kundenroutine" - & gt; Entfernen Sie com.myapp.customer

Bearbeiten:

Mit Androids Gradle Plugin 3+ können Sie Aromen erstellen, mit denen Sie einfach verschiedene Paketnamen / Builds erstellen können. Ссылка

    
Emanuel S 13.08.2017 21:22
quelle
1

Nach meinem Verständnis ist Ihre App vollständig offline .

Wenn es offline ist. Sie können nur feststellen, dass der Benutzer ein Profi ist, indem Sie sie fragen.

  

Sie können Benutzer dazu bringen, Pro-Funktionen zu erhalten, indem Sie Promo-Code eingeben. bekommen das   Promo-Code vom Benutzer und bieten ihnen Pro-Funktionen.

Wenn Ihre App Online ist und über Webdienste verfügt.

  

Dann können Sie Pro-Benutzer einfach überprüfen, wenn sie die App durch einen Anruf öffnen   Ihr Server und bieten Sie Pro-Funktionen.

Eine andere Idee ist die Überprüfung der Build-Nummer und die Bereitstellung der Pro-Funktionen.

Erhalte die Versionsnummer durch Aufruf von BuildConfig.VERSION_CODE

    
Bhuvanesh BS 19.08.2017 15:28
quelle
1

Wenn Ihr Kunde die App nicht vor der Aktualisierung durch den Store ausgeführt hat, gibt es einen Code Ihrer "pro" Variante, der ausgeführt werden kann, also werde ich versuchen, das einzige zu verwenden, was "erledigt" ist. Wenn die App installiert ist, die Berechtigungen.

Vielleicht versuchen Sie, eine Berechtigung nur in der "pro" Variante hinzuzufügen, die in Ihrer App nicht wirklich notwendig ist, aber Sie können später überprüfen, ob der Benutzer sie durch die erste Installation akzeptiert hat und welche APK es ist.

Sie können auch den Install Referrer ausprobieren, der normalerweise verwendet wird, um die Quelle Ihres Installationsursprungs zu identifizieren (wird oft von Marktwerkzeugen verwendet). Sehen Sie sich dieses Verweis nach der Installation der App aus dem Android Market an

    
smora 19.08.2017 16:36
quelle
1

Diese Lösung hängt davon ab, ob Sie beispielsweise Zugriff auf Ihre speziellen Benutzer per E-Mail haben.

Android unterstützt Deeplinking, für Ihre PRO-Benutzer können Sie sie auf einen Link verweisen, um die PRO-Funktionen zu aktivieren. Wenn ein Nutzer diesen Link öffnet, wird Ihre App geöffnet. Sie können das Entsperren in SharedPreferences speichern, damit es später auf neuere Versionen aktualisiert wird.

Optional können Sie Ihre Benutzer auch auf eine Anmeldeseite (den Link, den Sie ihnen senden) senden. Wenn sie sich erfolgreich anmelden, wird auf den Deeplink umgeleitet.

Eine weitere Alternative in derselben Richtung besteht darin, dass Sie Ihre App einer ungewöhnlichen Dateierweiterung (z. B. .fff) zuordnen und eine .fff-Datei an Ihre PRO-Benutzer senden. Dadurch werden sie aufgefordert, die Datei mit Ihrer App zu öffnen, damit Sie die Aktivierung der Pro-Funktionen erneut aufzeichnen können.

Bei beiden Lösungen können Sie verschiedene Feature-Sets aktivieren, wenn Sie beispielsweise unterschiedliche Feature-Gruppen (pro, business, superpro, ...) haben

    
user3802077 20.08.2017 03:09
quelle

Tags und Links