Einzelnen Beitrag anzeigen

oakley

Registriert seit: 15. Aug 2005
287 Beiträge
 
#1

Android Bilder aus Galerie per FTP aus Server laden

  Alt 26. Jan 2021, 23:48
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)) = '_datathen
      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
  Mit Zitat antworten Zitat