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/)
-   -   FileExists funktioniert nicht bei Android? (https://www.delphipraxis.net/211415-fileexists-funktioniert-nicht-bei-android.html)

skoschke 13. Sep 2022 14:41

AW: FileExists funktioniert nicht bei Android?
 
Zitat:

Schau mal bei KodeZwerg im 2. Beitrag, kann es nicht doch an Berechtigungen liegen ?
Vielleicht mal checken ob das Verzeichnis erreichbar ist.
Volltreffer!
Android 12 zusammen mit meinem aktuellen Delphi 11.2 scheint mir das Schreiben in TPath.GetSharedDownloadsPath zu verbieten!
Dass dann aber die irreführende Meldung "File always exists" kommt ist ja nicht witzig!

Ich muss aber in das allgemeine Downloadverzeichnis schreiben, nur wie stellt man das an, dafür sollte doch das GetSharedDownloadsPath da sein?

Ciao
Stefan

Rollo62 13. Sep 2022 15:02

AW: FileExists funktioniert nicht bei Android?
 
Zitat:

Zitat von skoschke (Beitrag 1511747)
Ich muss aber in das allgemeine Downloadverzeichnis schreiben, nur wie stellt man das an, dafür sollte doch das GetSharedDownloadsPath da sein?

Das war mal möglich wird aber von Version zu Version von Android immer stärker reglementiert.
Schau mal hier unter "Scoped storage", das ist wohl das was Android noch erlaubt.
Wenn Du Vollzugriff haben willst wirst Du spezielle Berechtigungen abfragen müssen und Google wird Dir beim Review ordentlich auf die Füsse treten, bzw. genau abfragen was Du damit genau machen willst.

himitsu 13. Sep 2022 15:10

AW: FileExists funktioniert nicht bei Android?
 
Das ist halt der Pfad, wo du runtergeladene Dateien lesen kannst.
Selber runterladen und dort speichern ist da nicht inbegriffen ... wobei, ein Webbrowser kann es ja auch, also muß es irgendwie gehn :stupid:

Du kannst dir ja mal die APK vom Chrome runterladen und dort nachsehn, was der für Berechtigungen hat.

Uwe Raabe 13. Sep 2022 15:31

AW: FileExists funktioniert nicht bei Android?
 
Gibt es bei Android nicht so einen Download Manager Service?

KodeZwerg 13. Sep 2022 15:52

AW: FileExists funktioniert nicht bei Android?
 
Zitat:

Zitat von skoschke (Beitrag 1511747)
Zitat:

Schau mal bei KodeZwerg im 2. Beitrag, kann es nicht doch an Berechtigungen liegen ?
Vielleicht mal checken ob das Verzeichnis erreichbar ist.
Volltreffer!

writing-to-an-external-sd-card-in-delphi-10-3-rio

Delphi-Quellcode:
fWriteStorage := JStringToString(TJManifest_permission.JavaClass.WRITE_EXTERNAL_STORAGE);

...

if PermissionsService.IsPermissionGranted(fWriteStorage) then
begin
  // access previously granted, write files...
end
else
begin
  PermissionsService.RequestPermissions([fWriteStorage],
    procedure(const APermissions: TArray<string>; const AGrantResults: TArray<TPermissionStatus>)
    begin
      if (Length(AGrantResults) = 1) and (AGrantResults[0] = TPermissionStatus.Granted) then
      begin
        // access granted, write files...
      end
      else
      begin
        // access denied, can't write files...
      end;
    end,
    DisplayRationale);
  end;
end;
Da geht es zwar um eine SD-Karte aber vermutlich ist es das selbe Prinzip, natürlich kann ich mich da auch total irren!

skoschke 13. Sep 2022 15:55

AW: FileExists funktioniert nicht bei Android?
 
So, falls jemand die gleichen Probleme bekommt, meine Lösung:

Ich darf nicht direkt unter dem frei zugänglichen Downloads (GetSharedDownloadsPath) Dateien erzeugen, wohl aber Verzeichnisse!
Also habe ich dort ein Unterverzeichnis für die App angelegt, darin darf ich Dateien speichern!
Somit sind dann die heruntergeladenen Dateien auch vom Benutzer erreichbar, das war das Wichtigste, nicht in die App-Sandbox speichern zu müssen...

Ciao
Stefan


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:27 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