German Android 11 Daten im Root speichern

so27

Active Member
Licensed User
Hallo zusammen,

ich kann mit meiner App bisher immer problemlos unter allen Android Versionen eine Datensicherung anlegen. Diese wird ins Root-Verzeichnis gespeichert. Unter Android 11 und SDK 30 scheint es damit Probleme zu geben. Kann mir jemand helfen?

2021-04-24_10h43_47.png

Ich speichere die Datei bislang über den folgenden Code ab, was auch bisher immer gut funktioniert hat:
B4X:
File.DirRootExternal & "/DaSi_ICE.zip"
GetSafeDirDefaultExternal habe ich vermieden, da hier das FILE Verzeichnis innerhalb der App aufgerufen wird, wenn ich das richtig verstanden habe. Ich brauche aber das Root-Verzeichnis.
 

so27

Active Member
Licensed User
Berechtigungen für den externen Speicher wurden natürlich vorher erhoben.
 

mw71

Active Member
Licensed User
moin,

im Detail habe ich mich damit auch noch nicht befasst, aber es wird immer weiter eingeschränkt.
Entwickler, die Apps für Geräte mit Android 11 oder höher anbieten, müssen begrenzten Speicher verwenden, damit Nutzer mehr Kontrolle über den Speicherzugriff auf ihren Geräten haben. Wenn du deine App nach dem 5. Mai für Android 11 oder höher veröffentlichen möchtest, musst du einen der folgenden Punkte umsetzen:

  • Aktualisiere deine App so, dass in ihr datenschutzfreundlichere Best Practices zum Einsatz kommen, z. B. das Storage Access Framework oder die Media Store API
  • Aktualisiere deine App so, dass in der Manifest-Datei die Berechtigung „Zugriff auf alle Dateien“ (MANAGE_EXTERNAL_STORAGE) deklariert wird, und fülle nach dem 5. Mai die zu dieser Berechtigung gehörende Erklärung zu Berechtigungen in der Play Console aus
  • Entferne die Berechtigung „Zugriff auf alle Dateien“ vollständig aus deiner App

wieso brauchst du unbedingt das Root Verzeichnis??
Wäre es nicht besser die Sicherung extern (FTP z.B.) abzulegen?
 

DonManfred

Expert
Licensed User
GetSafeDirDefaultExternal habe ich vermieden, da hier das FILE Verzeichnis innerhalb der App aufgerufen wird, wenn ich das richtig verstanden habe. Ich brauche aber das Root-Verzeichnis.
 

so27

Active Member
Licensed User
wieso brauchst du unbedingt das Root Verzeichnis??
Wäre es nicht besser die Sicherung extern (FTP z.B.) abzulegen?
Weil meine App schon seit Jahren die lokale Sicherung im Root-Verzeichnis (oder Root SD) ablegt und ich dies auch gerne so beibehalten würde. Allerdings werde ich offensichtlich ab Android 11 andere Wege gehen müssen bzw. so vorgehen müssen, wie es @DonManfred beschrieben hat. Zumindest sobald die App auf SDK 30 umgestellt wurde. Mit SDK 29 gibt es keinerlei Probleme.

Danke.
 

so27

Active Member
Licensed User
Danke für die Info. Ich werde mich an Dein oben gezeigtes Beispiel halten.
 

Filippo

Expert
Licensed User
Weil meine App schon seit Jahren die lokale Sicherung im Root-Verzeichnis (oder Root SD) ablegt und ich dies auch gerne so beibehalten würde. Allerdings werde ich offensichtlich ab Android 11 andere Wege gehen müssen bzw. so vorgehen müssen, wie es @DonManfred beschrieben hat. Zumindest sobald die App auf SDK 30 umgestellt wurde. Mit SDK 29 gibt es keinerlei Probleme.

Danke.
Willkomen in Club!
Ich muss zur Zeit auch damit kämpfen.
Das was @DonManfred vorschlägt ist mir bekannt, aber die implementierung in meine App ist nicht so einfach.
 

so27

Active Member
Licensed User
Willkomen in Club!
Ich muss zur Zeit auch damit kämpfen.
Das was @DonManfred vorschlägt ist mir bekannt, aber die implementierung in meine App ist nicht so einfach.
Das geht mir auch so. Hast Du eine vielleicht einfachere oder bessere Lösung? Diese ständigen Änderungen bei Google sind mitunter sehr anstrengend.
 

Filippo

Expert
Licensed User
Das geht mir auch so. Hast Du eine vielleicht einfachere oder bessere Lösung? Diese ständigen Änderungen bei Google sind mitunter sehr anstrengend.
Nein, leider habe ich noch keine Lösung gefunden, bzw. die Lösung ist da(siehe Antwort von @DonManfred ), die implementierung ist aber schwierig.
 
Top