AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung Mit Android APP auf ein SDCard Ordner zugreifen
Thema durchsuchen
Ansicht
Themen-Optionen

Mit Android APP auf ein SDCard Ordner zugreifen

Ein Thema von tdeck · begonnen am 26. Aug 2022 · letzter Beitrag vom 27. Aug 2022
Antwort Antwort
tdeck

Registriert seit: 26. Jun 2006
Ort: Obertshausen
69 Beiträge
 
Delphi 11 Alexandria
 
#1

Mit Android APP auf ein SDCard Ordner zugreifen

  Alt 26. Aug 2022, 16:43
Hallo Leute,

ich wollte meinen Kunden eigentlich die Möglichkeit geben auf einen Ordner in der SD-Card via TOpenDialog() und TSaveDialog() auf dortige Dateien zu zugreifen, um CFG-Dateien und Logbücher von unseren Steuerungen abzulegen.
Die Permissions sind gesetzt, die Meldung zum bestätigen kam auch.

Jetzt habe ich in einigen Foren gelesen, diese Dialoge funktionieren nur unter Windows/IOS.
Aber in den Angaben der Hilfe steht davon nichts! Es kann doch nicht sein, dass eine Entwicklungsoberfläche wie Embarcadero sowas nicht richtig eingebaut hat? Oder etwa doch?
Muss man sich diesen Dateibrowser wirklich komplett selbst für Android zusammenbauen?

Oder gibt es dafür eine passende Komponente, wenn Sie gut funktioniert darf sie auch entsprechend kosten.
Ich möchte mich bei meiner Programmierung eigentlich nicht mit solchen grundlegenden Dialogen beschäftigen, dafür habe ich
Embarcadero gekauft, damit ich mich damit nicht auseinander setzen muss (dachte ich).

Wir habt ihr das gelöst? Eine Ablage in GoogleDrive oder so bringt nichts, da in vielen Technikräumen bei dem Kunden keine Internetverbindung möglich ist, es sollte auf die SD-Card abgelegt und gelesen werden.
Thorsten
bye bye
tdeck
  Mit Zitat antworten Zitat
Benutzerbild von Olli73
Olli73
Online

Registriert seit: 25. Apr 2008
Ort: Neunkirchen
755 Beiträge
 
#2

AW: Mit Android APP auf ein SDCard Ordner zugreifen

  Alt 26. Aug 2022, 17:11
Ich habe mir vor Jahren Mal so einen Dialog selber gebaut. Ob der unter aktuellen Android-Versionen noch funktioniert, weiß ich nicht. Die Zugriffe auf Speicher außerhalb der eigenen Anwendung soll ja komplizierter oder gar unmöglich geworden sein!?
  Mit Zitat antworten Zitat
tdeck

Registriert seit: 26. Jun 2006
Ort: Obertshausen
69 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Mit Android APP auf ein SDCard Ordner zugreifen

  Alt 26. Aug 2022, 17:37
Ich habe mir vor Jahren Mal so einen Dialog selber gebaut. Ob der unter aktuellen Android-Versionen noch funktioniert, weiß ich nicht. Die Zugriffe auf Speicher außerhalb der eigenen Anwendung soll ja komplizierter oder gar unmöglich geworden sein!?
Hallo,

eigentlich nicht. Man muss nur die Permissions passend setzen, dann darf man auch auf die Speicher zugreifen. In den alten Androidversionen war das einfacher, aber mit der Komponente TMobilePermissions ist das recht einfach geworden.

Ich verstehe das halt nicht, ich suche schon den ganzen Tag nach einen passenden Ansatz.
Es gibt ein paar Lösungsansätze die aber eine JAVA-Jar-Bibliothek in Delphi einbinden und da dann den JAVA-Code als JAVA-Klasse aufrufen. Nur wenn ich damit anfange, kann ich gleich in JAVA das ganze fertig machen.

Thorsten
Thorsten
  Mit Zitat antworten Zitat
tdeck

Registriert seit: 26. Jun 2006
Ort: Obertshausen
69 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Mit Android APP auf ein SDCard Ordner zugreifen

  Alt 26. Aug 2022, 19:41
Hallo Leute,

ich habe eine Lösung gefunden. Ich habe WinSoft.sk angeschrieben, von denen nutze ich auch schon die USB-Android-Lib für Delphi.
Machen klasse und saubere Arbeit, er hat in dem Paket "Utils library" eine entsprechende saubere Lösung.

In dem Demo Storage kann man es sich anschauen, perfekt! Alles was ich dazu brauche.

Nur schade das Embarcadero es nicht ordentlich hinbekommt (mal wieder "Halbfertige" Sachen), aber jeden Mist mit Python reinnehmen

Thorsten
Thorsten
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.960 Beiträge
 
Delphi 12 Athens
 
#5

AW: Mit Android APP auf ein SDCard Ordner zugreifen

  Alt 26. Aug 2022, 20:53
Naja, so einfach ist das doch nicht. Stichwort ist scoped storage. Zumindest für den SharedDownloads Ordner.

Der systemeigene Dialog in Android, den EMBT Kapseln müsste liefert anders als der in Windows keinen Dateinamen zurück sondern irgend so einen Provider.

Und Filtern nach Dateiendungen geht nur für dem System bereits bekannte Mime Types. Eigene Dateiendungen müssen dann über */* oder so abgehandelt werden.

Soweit mein Stand. Damit wird das Kapseln zumindest erschwert. Alternativ müsste EMBT was komplett eigenes stricken.
  Mit Zitat antworten Zitat
tdeck

Registriert seit: 26. Jun 2006
Ort: Obertshausen
69 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Mit Android APP auf ein SDCard Ordner zugreifen

  Alt 27. Aug 2022, 22:12
Hallo TurboMagic,

doch eigentlich schon . Das war jetzt recht einfach, ein paar Stunden Arbeit und ich konnte mit der App die Dateien lesen und schreiben. Per Compiler-Anweisung schalte ich das öffnen/speichern der Datei zwischen Android und Windows als Ziel einfach um.

Code:
//---------------------------------------------------
// 27.08.2022
// V1.1967
// Android Ladefunktion eingefügt
//
procedure TForm1.BtnLadeCfgClick(Sender: TObject);
begin
  // Lade Config File
  //
  // Windows
  {$ifdef MSWINDOWS}
    // Öffnen der Datei mit TOpenDialog
    //
     WindLoadConfig;
  {$endif MSWINDOWS}

  // Android
  {$ifdef ANDROID}
    TDocument.Open(
      procedure (Document: TDocument)
      begin
        if Document <> nil then
        try
          // Debugausgabe
          AddLine('Path: ' + Document.Path);
          Addline('Anzahl Bytes: '+ IntToStr(High(Document.Read)) );
          AddLine('Content: ' + IntToHex(Document.Read[0]));

          // Datei prüfen und verarbeiten
          //
           AndroidGetConfig(Document.Read);

        finally
          Document.Free;
        end;
      end, '', '*/*');
   {$endif ANDROID}

end; // Ende BtnLadeCfg


Klar nutze ich jetzt erstmal keine eigene "Mime Types" (damit habe ich mich noch nicht beschäftigt), und starte die Dateiauswahl mit "*/*", damit habe ich aber kein Problem. Meine Kunden sind geschulte Techniker, die wissen welche Datei-Endungen geöffnet werden können. Die erstellten Dateien von mir haben ein bestimmtes Header in den ersten Bytes. Passen die nicht wird die Datei nicht verarbeitet und es gibt eine passende Meldung.

Klar wäre es sauberer wenn dies einfach mit dem FMX TOpenDialog/TSaveDialog gemacht werden könnte, dazu müsste aber Embarcadero da mal Hand anlegen.

Thorsten
Thorsten
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.960 Beiträge
 
Delphi 12 Athens
 
#7

AW: Mit Android APP auf ein SDCard Ordner zugreifen

  Alt 27. Aug 2022, 22:59
Hallo,

naja, wie geschrieben ist das mit dem hand anlegen hier nicht ganz so leicht, weil ja dein
Dokument Öffnen in Android (ich hatte das auch schon mal umgesetzt, keine Panik! )
gleich mit einem Dokument Objekt kommt und nicht wie TOpenDialog mit einem Dateinamen!

Zu den Mime-Types: soweit ich damals rausgefunden habe (lasse mich aber gerne von den
Ergebnissen deiner Nachforschungen eines besseren belehren!) kann man eigene Mime-Types
für den Zweck gar nicht wirklich definieren, es sei denn man definiert welche für den
Aufruf deiner App durch andere mittels Intent. Das kann für manche Apps nützlich sein,
aber sicher nicht für jede. Und selbst das definieren dafür war, wenn man den ganzen
StackOverflow Posts dazu glauben darf, auch nicht problemfrei oder richtig dokumentiert
oder es gab mal wieder komische Änderungen zwischen den Android Versionen.

Ich habe da manchmal den Eindruck, dass beim Android API manchmal von denen nicht
genügend nachgedacht wird, wer was wofür eigentlich braucht. Nur weil die was nicht
nützlich finden bedeutet es ja nicht, dass es andere nicht gebrauchen könnten.

Und anders als mit EMBT findet in deren Bugtracker auch keine wirklich sinnvolle
Kommunikation mit den Kunden statt!

Grüße
TurboMagic
  Mit Zitat antworten Zitat
Antwort Antwort

 

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 17:00 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