AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung Delphi FMX : getContentResolver.query Crash und Jnet_Uri getPath
Thema durchsuchen
Ansicht
Themen-Optionen

FMX : getContentResolver.query Crash und Jnet_Uri getPath

Ein Thema von stalkingwolf · begonnen am 22. Jul 2020 · letzter Beitrag vom 1. Mär 2021
 
oakley

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

AW: FMX : getContentResolver.query Crash und Jnet_Uri getPath

  Alt 30. Jan 2021, 23:09
So weit so gut.

Ich habe jetzt folgenden Code für den Upload

Delphi-Quellcode:
function TMFORM.HandleIntentAction(const Data: JIntent): Boolean;
var
  C: JCursor;
  count: Integer;
  InputStream : JInputStream;
  ms : TMemoryStream;
  b: TJavaArray<Byte>;
  wfilter: TJavaObjectArray<JString>;
  filename : String;
begin
  count := Data.getClipData().getItemCount();
  ProgressBar1.Min := 0;
  ProgressBar1.Max := count;
  TTask.Run(
  Procedure
  var i,m : Integer;
  begin
    for i := 0 to count-1 do
    begin
      C := MainActivity.getContentResolver.query(Data.getClipData().getItemAt(i).getUri,nil,StringToJString(''),nil,StringToJString(''));
      C.moveToFirst;
      for m := 0 to C.getColumnCount - 1 do
      begin
         if JStringToString(C.getColumnName(m)) = '_display_namethen
         begin
           filename := JStringToString(C.getString(m));
           break;
         end;
      end;
      InputStream := MainActivity.getContentResolver.openInputStream(Data.getClipData().getItemAt(i).getUri);
      ms.Free;
      b.Free;
      b := TJavaArray<Byte>.Create(InputStream.available);
      ms := TMemoryStream.Create;
      InputStream.read(b);
      ms.Write(b.Data^, b.Length);
      InputStream.close;
      ms.Position := 0;
      if not idftp1.Connected then idftp1.Connect;
      idftp1.Put(ms,filename);
    end;
    idFTP1.Disconnect;
  end);
end;
Der Upload zeigt ab und zu die Meldung "keine Duplikate zulässig" und der Fortschrittsbalken steht direkt nach beginn des Uploads bei 100%.
Hier hätte ich gerne etwas das die geladenen kBytes pro Datei anzeigt. Geht sowas? Und der Fortschrittsbalken ist sehr dünn, kann man den etwas breiter machen?
In Firemonkey kann ich zwar die Höhe mit der Maus ziehen, wird aber direkt wieder zurück gestellt.

Delphi-Quellcode:
procedure TMFORM.IdFTP1Work(ASender: TObject; AWorkMode: TWorkMode;
  AWorkCount: Int64);
begin
  TTask.Run(
  Procedure
  begin
    //Aktualisieren der Fortschrittsanzeige:
    ProgressBar1.Value:= AWorkCount;
  end);
end;
Ich wollte die Bilder vor dem Upload auch noch verkleinern denn ich brauche die Vollauflösung der Kamera nicht und der Upload geht wesentlich schneller.
Gibt überhaupt eine praktikable Lösung auf dem Handy oder kommt man da schnell an die Leistungsgrenze?

LG

Mirko

Geändert von oakley (30. Jan 2021 um 23:49 Uhr)
  Mit Zitat antworten Zitat
 


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 02:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz