Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Name der SDKarte unter Android ermitteln (https://www.delphipraxis.net/208723-name-der-sdkarte-unter-android-ermitteln.html)

nikosophi 10. Sep 2021 09:17

Name der SDKarte unter Android ermitteln
 
Hallo zusammen,

das Thema ist mit Android 11 nicht neu. Ich habe aber noch keine funktionierende Lösung gefunden.

Es geht "einfach" nur darum den Namen der externen SDKarte zu ermitteln. Tools, wie Totalcommander etc. können das und können darauf sogar schreiben.

Mit:

Delphi-Quellcode:
      sArr := system.ioutils.TDirectory.GetDirectories('/storage/6172-079C');
      Say ( 'Anzahl: '+inttostr(length(sArr)) );
      for i := 0 to length(sArr)-1 do begin
        Say ( inttostr(i)+': '+' '+sArr[i] );
      end;
funktioniert es prima. Rechte sind also da.

ABER: der Name "6172-079C" (aus diesem Beispiel) ist irgendwie nicht zu ermitteln.

Folgendes habe ich versucht:

Delphi-Quellcode:
        cBuf := GetExternalStorageDirectory;                  // abgekündigt
        Say ( 'GetExternalStorageDirectory: '+cBuf );     // =>    /storage/emulated/0
Delphi-Quellcode:
          cBuf := GetExternalFilesDir;
          Say ( 'GetExternalFilesDir: '+cBuf );                 // => /storage/emulated/0/Android/data/$Appname$/cache
Delphi-Quellcode:
          cBuf := GetSysSecondaryStorage;
          Say ( 'GetSysSecondaryStorage: '+cBuf );    // => /sdcard
dann mit sArr := system.ioutils.TDirectory.GetDirectories('/storage/sdcard');
gibt es aber wieder nur die internen Daten.

Also, wenn man den Namen weiß und einfach verwendet, werden die Daten auf der SD-Karte aufgelistet.
Der Name kommt aber mit keiner mir bekannten Funktion zurück.

Ich verwende Delphi 10.4 Update 2
Android 11 Sicherheitspatch 1.August 2021 auf Samsung S20

Hiermit bin ich auch nicht weitergekommen:
https://www.delphipraxis.net/207119-...te-heraus.html
http://cc.embarcadero.com/Item/30158


Hat jemand eine Idee?

philipp.hofmann 10. Sep 2021 21:35

AW: Name der SDKarte unter Android ermitteln
 
File-Explorer haben da andere Berechtigungen, die einer normalen App verwehrt bleiben. Ich hätte da auch gerne eine Lösung.

nikosophi 14. Sep 2021 17:57

AW: Name der SDKarte unter Android ermitteln
 
Delphi ist ja soo toll. Nur die einfachen Dinge funktionieren nicht!

Ich habe nun ein Text Edit in den Einstellungen gemacht.
So kann der Anwender dort seine Kartennummer eintragen.

Echt traurig!

TurboMagic 14. Sep 2021 20:34

AW: Name der SDKarte unter Android ermitteln
 
Bitte nicht die durch die Entwickler der Plattform verursachten Probleme auf das Entwicklungstool schieben!

Ja, Android Scopedstorage ist auch meiner Meinung nach doof, aber Delphi kann nichts dafür, dass für bestimmte Aktionen spezielle Berechtigungen benötigt werden, die Google nur Dateimanagern o.ä. zugesteht!

nikosophi 15. Sep 2021 15:02

AW: Name der SDKarte unter Android ermitteln
 
Na, ich lerne ja gerne hinzu.

Wo stelle ich denn in Delphi ein, daß meine App ein Dateimanager wird?

TurboMagic 15. Sep 2021 20:50

AW: Name der SDKarte unter Android ermitteln
 
Suche Mal wo man die von der Anwendung angeforderten Berechtigungen in den Projektoptionen einstellt.

Aber: soll die App in den Store, wird Google prüfen, ob deine App sowas wie ein Dateimanager ist. Wenn nicht wird sie abgelehnt.


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