Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Delphi requestLegacyExternalStorage im AndroidManifest (https://www.delphipraxis.net/207636-requestlegacyexternalstorage-im-androidmanifest.html)

Rollo62 5. Mai 2021 20:47

AW: requestLegacyExternalStorage im AndroidManifest
 
http://docwiki.embarcadero.com/RADSt...or_iOS_or_OS_X

philipp.hofmann 5. Mai 2021 21:04

AW: requestLegacyExternalStorage im AndroidManifest
 
Da bin ich mir gerade unsicher. Im Englischen heißen die beiden relevanten Listen:
- Entitlement List
- Uses Permissions

In der Entitlement List gibt es ein "Secure File Sharing", keine Ahnung, ob dies noch so erlaubt ist.
In den Uses Permissions gibt es "Read External Storage" und "Write External Storage".

Diese Punkte haben zumindest das Potential jetzt nicht mehr so einfach gültig zu sein.
Ich freue mich schon total darauf, dass alles durchzutesten.

TurboMagic 6. Mai 2021 07:09

AW: requestLegacyExternalStorage im AndroidManifest
 
Deine ini gehört in einen App lokalen Pfad, also nicht ein öffentliches Verzeichnis.
Also z.B. TPath.GetHomePath.

philipp.hofmann 6. Mai 2021 11:38

AW: requestLegacyExternalStorage im AndroidManifest
 
GetDocumentsPath und GetHomePath ist unter Android das gleiche Verzeichnis und auch GetPublicPath zeigt nicht auf ein öffentliches, sondern ein Applikationsverzeichnis:

TPath.GetDocumentsPath (nutzt der Verfasser)
/data/data/<application ID>/files

TPath.GetHomePath
/data/data/<application ID>/files

TPath.GetPublicPath (nutze ich)
/storage/emulated/0/Android/data/<application ID>/files

Die Pfade sollten für Ini-Files also alle erlaubt sein.

himitsu 6. Mai 2021 12:16

AW: requestLegacyExternalStorage im AndroidManifest
 
Je nach Geräte-Hersteller können die Pfade auch etwas abweichen,
aber im Großen und Ganzen ist das Schema überall ähnlich.

zeras 6. Mai 2021 18:56

AW: requestLegacyExternalStorage im AndroidManifest
 
Zitat:

Zitat von philipp.hofmann (Beitrag 1488720)
GetDocumentsPath und GetHomePath ist unter Android das gleiche Verzeichnis und auch GetPublicPath zeigt nicht auf ein öffentliches, sondern ein Applikationsverzeichnis:

TPath.GetDocumentsPath (nutzt der Verfasser)
/data/data/<application ID>/files
/data/user/0/<application ID>/files

TPath.GetHomePath
/data/data/<application ID>/files
/data/user/0/<application ID>/files

TPath.GetPublicPath (nutze ich)
/storage/emulated/0/Android/data/<application ID>/files
/storage/emulated/0/Android/data/<application ID>/files


Die Pfade sollten für Ini-Files also alle erlaubt sein.

Bei mir sehen die Pfade ein wenig anders aus (dunkelrot).

Mal sehen, was eure Ergebnisse bringen, wenn ihr den/das Token in der Überschrift aus dem Manifest entfernt.

himitsu 6. Mai 2021 19:05

AW: requestLegacyExternalStorage im AndroidManifest
 
Ja, viele Gerätehersteller passen ihr Android etwas an,
auch was das Speicherlayout betrifft.
Und auch je nach Android-Version kann es sich mal verändern.

Vor allem, wenn man im Android auch noch das MultiUser aktiviert,
wonach es bei dir aussieht. (kann aber auch sein, dass es so schon vorbereitet ist, selbst wenn noch nicht aktiv)

Im Android besteht das Dateisystem aus vielen als "Verzeichnis" gemappten Partitionen, oder auch die SD-Card hat ein/zwei Verzeichnisse,
und auch viele Dateien sind als Verzeichnisse eingebunden. (z.B. oft für das Userverzeichnis, je Benutzer)

Wie im Windows, können diese Verzeichnisse sich halt auch verschieben,
drum gibt es ja diese Funktionen zum Auslesen des gewünschten Verzeichnisnamens. :zwinker:
Man kann sie sogar im aktuellen System wo anders hin tun, passiert vielleicht auch mal bei einem Update, oder sogar als Benutzer z.B. auf eine andere Partition/Festplatte/Netzlaufwerk verschieben. (im Android/iOS ist aber vieles gesperrt, drum macht sowas selten jemand selbst)

zeras 6. Mai 2021 19:29

AW: requestLegacyExternalStorage im AndroidManifest
 
Danke für eure Hinweise.
Eigentlich will ich ja nur meine Einstellungen irgendwo sichern. Ich muss auf keine weiteren Dateien zugreifen.
Den Schlüssel im Manifest habe ich ja gelöscht, aber trotzdem kommt die Meldung im Store, dass das Flag immer noch da wäre.
Mal sehen, ob die Meldung im nächsten Update immer noch kommt.
Das Manifest sollte doch nur einmalig da sein für 32 und 64 bit??

Rollo62 6. Mai 2021 19:35

AW: requestLegacyExternalStorage im AndroidManifest
 
Zitat:

Zitat von philipp.hofmann (Beitrag 1488679)
In der Entitlement List gibt es ein "Secure File Sharing", keine Ahnung, ob dies noch so erlaubt ist.
In den Uses Permissions gibt es "Read External Storage" und "Write External Storage".
Diese Punkte haben zumindest das Potential jetzt nicht mehr so einfach gültig zu sein.

Bei mir hat "Secure File Sharing" jedenfalls nicht mit requestLegacyExternalStorage zu tun,
egal ob mit/ohne, das Letztere kommt immer mit in das Template.

philipp.hofmann 8. Mai 2021 17:37

AW: requestLegacyExternalStorage im AndroidManifest
 
Also bei mir hat es geklappt. Ich habe folgendes tun müssen:
- Zeile mit requestLegacyExternalStorage aus dem Manifest rausgenommen
- ReadExternalStorage und WriteExternalStorage aus den Project-Permissions für Android-64 rausgenommen
- Abfrage im Code für ReadExternalStorage und WriteExternalStorage rausgenommen
- meine externen Dateizugriffe auf SAF umgestellt

Die App ist seit heute Nachmittag so im Store aktualisiert.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:08 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz