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

FMX : getContentResolver.query Crash und Jnet_Uri getPath

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

Registriert seit: 6. Mai 2011
549 Beiträge
 
#19

AW: FMX : getContentResolver.query Crash und Jnet_Uri getPath

  Alt 1. Mär 2021, 15:16
Hey danke für eure weitere Diskussion.
Ich habe das Thema damals zur Seite gelegt weil ich nicht weiterkam.
Ich habe das ganze nun auch gelöst für EINE Datei

Code:
InputStream := SharedActivity.getContentResolver.openInputStream(Data.getData);
b          := TJavaArray<Byte>.Create(InputStream.available);
ms         := TMemoryStream.Create;

InputStream.read(b);
ms.Write(b.Data^, b.Length);
ms.SaveToFile( filename );

ms.Free;
b.Free;
InputStream.close;
Ich habe allerdings immernoch das Problem mit mehreren Dateien.
Sobald ich auf Data zugreife knallt es.
Code:
function TFmain.OnActivityResult(RequestCode, ResultCode: Integer; Data: JIntent): Boolean;
begin
   if RequestCode = ScanRequestCode then begin
      if ResultCode = TJActivity.JavaClass.RESULT_OK then begin
         if Assigned(Data) then begin
                            addlog(data.getData.getPath);
addlog schreibt mir das in ein Memo und in eine ASCII Datei.
Mit einer Datei kein Problem. Sobald 2 oder mehr Dateien selektiert wurden stürzt das ganze ab.


Wenn ich den Code umschreibe was ihr nutzt also
Data.getClipData().getItemCount();
JStringToString(Data.getClipData().getItemAt(i).ge tUri.toString)
Dann funktioniert es mit 2 Dateien, aber nicht mehr wenn ich eine Datei auswähle.

Ich vermute es ligt am Aufruf der Auswahl.
Wie schaut bei euch der der Quellcode aus?
Meiner ist noch wie auf Seite 1.


EDIT :
Hab das soweit nun alles hinbekommen. Musste eine Kombination aus beidem einbinden und ganz oben abprüfen
Code:
if assigned(data.getClipData) then begin
.
.
else begin
.
.
end;
Was ich nun nur noch habe ist das die Datei nach Tmemorystream.savetofile(); nicht direkt vorhanden ist.
Also ein fileexist danach gibt false aus.
Das dauert eine Zeit bis die Datei vorhanden ist und man diese öffnen kann.

Geändert von stalkingwolf ( 1. Mär 2021 um 16:44 Uhr)
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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