Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Android Bilder aus Galerie per FTP aus Server laden (https://www.delphipraxis.net/206758-android-bilder-aus-galerie-per-ftp-aus-server-laden.html)

oakley 26. Jan 2021 23:48

Android Bilder aus Galerie per FTP aus Server laden
 
Hallo zusammen,

ich wollte mit Firemonkey eine kleine Android App schreiben, mit der man Bilde raus der Galerie per FTP auf einen Server laden kann.
Die Verbindung mit IDFTP klappt problemlos wenn ich einfach nur den Connect ausführe.
Mit fehlt aber noch der komplette Bildpfad inklusive Dateiname um den Put machen zu können.

Ich verwende diesen Code um die Bilder aus der Galerie zu wählen (funktioniert auch):

Delphi-Quellcode:
procedure TMFORM.getImages();
var Intent : JIntent;
begin
  FMessageSubscriptionID := TMessageManager.DefaultManager.SubscribeToMessage(TMessageResultNotification, HandleActivityMessage);
  Intent := TJIntent.JavaClass.init(TJIntent.JavaClass.ACTION_PICK);
  intent.setType(StringToJString('image/*'));
  intent.setAction(TjIntent.JavaClass.ACTION_GET_CONTENT);
  Intent.putExtra(TJIntent.JavaClass.EXTRA_ALLOW_MULTIPLE,true);
  if MainActivity.getPackageManager.queryIntentActivities(Intent, TJPackageManager.JavaClass.MATCH_DEFAULT_ONLY).size > 0 then
    MainActivity.startActivityForResult(Intent,0)
  else
    ShowMessage('Receiver not found');
end;
Im Action Handler des Intent dann um zu sehen welcher der richtige Pfad ist:

Delphi-Quellcode:
function TMFORM.HandleIntentAction(const Data: JIntent): Boolean;
var
  C: JCursor;
  I: Integer;
  idx : Integer;
begin
  Memo1.Lines.Text := JStringToString(Data.getData.toString);
  C := MainActivity.getContentResolver.query(Data.getData,nil,StringToJString(''),nil,StringToJString(''));
  C.moveToFirst;

  Memo1.Lines.Add('Path:' + JStringToString(Data.getData.getPath)); //Das ist nicht der Pfad für den Upload
  Memo1.Lines.Add('No of columns returned:' + C.getColumnCount.ToString);

  for I := 0 to C.getColumnCount - 1 do
  begin
    if JStringToString(C.getColumnName(I)) = '_data' then
      Edit1.Text := JStringToString(C.getString(I)); //Das sollte der richtige Pfad sein aber _data kommt als column nicht vor
    Memo1.Lines.Add(JStringToString(C.getColumnName(I)) +': ' + JStringToString(C.getString(I)));
  end;
end;
Wie komme ich an den vollständigen Pfad für den Upload?

Gruß

Mirko


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