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