AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung Delphi Android Google Pixel 7a Android 14 App nicht deinstallierbar

Android Google Pixel 7a Android 14 App nicht deinstallierbar

Ein Thema von fisipjm · begonnen am 8. Feb 2024 · letzter Beitrag vom 13. Feb 2024
Antwort Antwort
fisipjm

Registriert seit: 28. Okt 2013
245 Beiträge
 
#1

Android Google Pixel 7a Android 14 App nicht deinstallierbar

  Alt 8. Feb 2024, 16:39
Hi,

ich stehe mal wieder vor einem Kuriosum.
Folgendes Gerät habe ich zum Testen der App

Android Google Pixel 7a
Android Version 14

In der App gibt es eine SQLite Datenbank. Die "Erstinstallation" sieht so aus, dass eine leere Datenbank (ohne Daten, nur Tabellen und Felder) über die Bereitstellung in .\assets\internal\ geladen wird.
Wird dann über
Code:
Connection.Params.Values['Database'] := TPath.Combine(TPath.GetDocumentsPath,<Datenbankname>)
mit der Anwendung gekoppelt. So weit so unspektakulär.

Jetzt gibt es an der Datenbankstruktur Änderungen. Die Anwendung ist noch nicht Live (sonst würde ich es über ein Updateskript regeln). Habe die Anpassungen an der Datenbank durchgeführt, die Über die Bereitstellung bereitgestellt wird.

Meine naive Annahme war jetzt, dass ich einfach auf dem Gerät die App deinstallieren kann und es über Delphi neu drauf spielen kann und dann die neue DB habe. Aber dem ist leider nicht so. Dass Verhalten kannte ich schon (Wahrscheinlich was Pixel spezifisches? Scheinbar werden die Daten irgendwo gecached), normalerweise konnte ich das immer lösen, indem ich in die App-Einstellungen geöffnet habe und dann unter "Speicher und Cache" sowohl den Cache als auch den Speicher gelöscht habe. Das ging auch noch sicher unter Android 13. Seit dem Android 14 auf dem Gerät ist, scheint auch das nicht mehr zu funktionieren. Ich lösche alles runter, nehme dann testweise sogar die Datenbank mal aus dem Deploy raus und beim nächsten verteilen der Anwendung ist wieder die alte bereits vor langer Zeit verteilte Datenbank im System.

Absolut keine Ahnung von wo er sich die zieht und wie ich die weg bekomme. Kennt ihr das? Hattet ihr das schon mal?
Habs auch schon mit einem Neustart versucht, der Nächste Step ist ein Zurücksetzen auf Werkseinstellungen, aber der Aufwand ist doch extrem hoch.

Bin für alle Möglichkeiten offen.
VG
PJM
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.737 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Android Google Pixel 7a Android 14 App nicht deinstallierbar

  Alt 9. Feb 2024, 13:10
Hallo,

hm, schon mal mit -cleaninstall Parameter im Delphi probiert?
Bei Start/Parameter eintragen und App mittels F9 aus der IDE starten.

Grüße
TurboMagic
  Mit Zitat antworten Zitat
fisipjm

Registriert seit: 28. Okt 2013
245 Beiträge
 
#3

AW: Android Google Pixel 7a Android 14 App nicht deinstallierbar

  Alt 9. Feb 2024, 16:34
Jap, hab ich vergessen. Auch schon probiert. Ohne Erfolg.
"Lustig" ist auch, wenn ich es als Release installiere (Wofür ich ja die alte App erst mal runter werfen muss) bekomme ich die aktuelle Datenbank rein kopiert, wenn ich dann wieder zurück auf Debug wechsle, hab ich wieder die alten Einstellungen drin.
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
3.823 Beiträge
 
Delphi 12 Athens
 
#4

AW: Android Google Pixel 7a Android 14 App nicht deinstallierbar

  Alt 9. Feb 2024, 17:50
Die Phones haben teilweise AutoBackup in die Cloud aktiviert, könnte das bei Dir der Fall sein?
https://developer.android.com/guide/...ata/autobackup
  Mit Zitat antworten Zitat
fisipjm

Registriert seit: 28. Okt 2013
245 Beiträge
 
#5

AW: Android Google Pixel 7a Android 14 App nicht deinstallierbar

  Alt 9. Feb 2024, 17:58
Ach du Schande, dass könnte es echt sein

Zitat:
Restore schedule
Data is restored whenever the app is installed, whether from the Play Store, during device setup (when the system installs previously installed apps), or by running adb install. The restore operation occurs after the APK is installed but before the app is available to be launched by the user.
Ich muss das mal ausprobieren. Die Frage ist nur, wie sieht es mit einer App aus, die bereits durch das Backup gesichert wurde und jetzt in der "neuen" Version per Manifest das Autobackup deaktiviert bekommen hat. Wird damit dann das Backup gelöscht?

Code:
<manifest ... >
    ...
    <application android:allowBackup="false" ... >
        ...
    </application>
</manifest>
Und was ich mich auch noch frage, warum macht man sowas für Apps die noch als Debug laufen. Das macht in meinen Augen wenig Sinn

PS: Muss dich enttäuschen, hab gerade gecheckt ob es die App im Backup inbegriffen ist. Das Backup ist überhaupt nicht aktiv und es befindet sich keine App im Backup.

Geändert von fisipjm ( 9. Feb 2024 um 18:02 Uhr)
  Mit Zitat antworten Zitat
fisipjm

Registriert seit: 28. Okt 2013
245 Beiträge
 
#6

AW: Android Google Pixel 7a Android 14 App nicht deinstallierbar

  Alt 12. Feb 2024, 10:21
Moin,

Problem gelöst. Rollo hatte doch recht. Also hier eine kleine Zusammenfassung:

Android kann seit Version 6 sog. automatischen Backups von APP-Einstellungen. Bedeutet, wenn diese Funktion auf dem Smartphone aktiv ist, oder war, und ein Backup auf Google-Drive existiert, dann wird dieses Backup beim installieren der App angewendet.

Ablauf ist dabei folgender:
- App wird installiert
- Wenn Backup vorhanden, wird Backup eingespielt (Dateien werden Überschrieben)
- App wird das erste mal gestartet

Achtung, dieser Prozess läuft nur einmal ab, nämlich dann, wenn die App nicht bereits auf dem Gerät installiert ist. Bei einem Update greift dieser Mechanismus nicht.

Das Backup wird auch dann eingespielt, wenn man die automatische Backupfunktion bereits deaktiviert hat, aber immer noch Backups in Google Drive existieren.

Jetzt gibt es IMHO 3 Möglichkeiten damit umzugehen:
1.) Alle Backups Löschen und AutoBackup deaktivieren
2.) Beim App entwickeln und verteilen auf das Gerät in den Flugmodus wechseln (Ja, das gerät zieht sich die Einstellungen jedes mal aus dem netz)
3.) In der Maifestdatei entweder für die ganze App oder nur für einzelne Dateien das Backup untersagen

Die Manifestdatei entfaltet im übrigen auch dann ihre Wirkung, wenn bereits ein Backup existiert. Bedeutet, eine vorhandene Sicherung wird nicht angewendet, wenn in der Manifestdatei autobackup auf False steht.

Das Problem ist natürlich nicht abhängig vom Pixel, sondern von Android. Andere Hersteller unterbinden aber die Autobackup anpreiserei weshalb es sein kann, dass es da dann nie aktiviert war.
Hoffe das hilft dem nächsten, falls er über dieses Problem stolpert.

LG
PJM
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
3.823 Beiträge
 
Delphi 12 Athens
 
#7

AW: Android Google Pixel 7a Android 14 App nicht deinstallierbar

  Alt 13. Feb 2024, 09:46
Es gibt vielleicht noch mehr Lösungen:
- Du könntest vielleicht auch die Dateien in ein Verzeichnis laden, welches nicht per AutoBackup gesichert wird.
- Du könntest auch ein Backup zwangsweise in der App überschreiben, z.B. indem Du erkennst, ob eine neue Version läuft => dann überschreiben
  Mit Zitat antworten Zitat
fisipjm

Registriert seit: 28. Okt 2013
245 Beiträge
 
#8

AW: Android Google Pixel 7a Android 14 App nicht deinstallierbar

  Alt 13. Feb 2024, 11:43
Es gibt vielleicht noch mehr Lösungen:
- Du könntest vielleicht auch die Dateien in ein Verzeichnis laden, welches nicht per AutoBackup gesichert wird.
Das könnte wahrscheinlich auch funktionieren.
Würde dann aber eher dazu tendieren diese Datei speziell in der Manifest auszuschließen.
- Du könntest auch ein Backup zwangsweise in der App überschreiben, z.B. indem Du erkennst, ob eine neue Version läuft => dann überschreiben
Das dürfte nicht gehen, die Backup Logik greift bevor die App überhaupt das erste mal zum Leben erweckt wird.
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
3.823 Beiträge
 
Delphi 12 Athens
 
#9

AW: Android Google Pixel 7a Android 14 App nicht deinstallierbar

  Alt 13. Feb 2024, 19:06
- Du könntest auch ein Backup zwangsweise in der App überschreiben, z.B. indem Du erkennst, ob eine neue Version läuft => dann überschreiben
Das dürfte nicht gehen, die Backup Logik greift bevor die App überhaupt das erste mal zum Leben erweckt wird.
Ich meine auch ein Überschreiben NACH dem Backup.
Das mache ich mit anderen Dingen ähnlich, einfach ca. 1 Sek. nach dem ersten Start ( oder Neustart ) ein Conf_Setup; was dann alles Mögliche einrichtet.
Die App muss ja nicht vor dem Form_Show komplett eingerichtet sein und evtl. muss der User irgendwas bestätigen.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:58 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz