Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Meine erstellte Datei kann nicht geöffnet werden (https://www.delphipraxis.net/192132-meine-erstellte-datei-kann-nicht-geoeffnet-werden.html)

sko1 22. Mär 2017 09:51

Meine erstellte Datei kann nicht geöffnet werden
 
Hallo,

in einer Android App wird ein PDF erzeugt und kann auch in der Anwendung geöffnet und angezeigt werden.
Nun möchte ich dem Benutzer zusätzlich die Möglichkeit geben, dieses PDF im Handy mit einer App seiner Wahl anzeigen zu lassen un sie z.B. drucken zu können:

Delphi-Quellcode:
procedure ShowPDF();
{$IFDEF ANDROID}
var
  Intent: JIntent;
{$ENDIF}
begin
{$IFDEF ANDROID}
  if fileexists(pdffilename) = false then
  begin
    showmessage(pdffilename + ' nicht gefunden !');
    exit;
  end;
  Intent := TJIntent.Create;
  Intent.setAction(TJIntent.JavaClass.ACTION_VIEW);
  Intent.setDataAndType(StrToJURI('file://' + pdffilename),
    StringToJString('application/pdf'));
  TAndroidHelper.Activity.startActivity(Intent);
  exit;
{$ENDIF}
  showmessage('Diese Funktion ist in Windows nicht verfügbar !');
end;

Leider meldet mir die aufgerufene App "Datei kann nicht geöffnet werden", warum?
Ein Zugriff auf dieses PDF ist definitiv im Programm nicht mehr vorhanden, es liegt allgemein zugänglich unter 'Phone/Documents'

Hat jemand einen hilfreichen Tip?

Ciao
Stefan

Ghostwalker 22. Mär 2017 09:54

AW: Meine erstellte Datei kann nicht geöffnet werden
 
Wie siehts mit den Dateirechten aus ? bzw. den Attributen ?

sko1 22. Mär 2017 10:00

AW: Meine erstellte Datei kann nicht geöffnet werden
 
Da ist nichts besonderes, schiebe ich mein Programm auf dem Handy in den Hintergrund, öffne z.B. den Dateimanager, kann ich das PDF problemlos mit der gewünschten App anzeigen!

Ciao
Stefan

sko1 22. Mär 2017 13:35

AW: Meine erstellte Datei kann nicht geöffnet werden
 
Ich habe ein neues Handy (Android 6.0.1) wo das Problem auftritt.

Ich habe das Programm jetzt mal auf einem älteren Tablet (Android 5.0.2) installiert, da klappt das Anzeigen aus dem Programm heraus problemlos!

Also hat sich zu Android 6.0.1 etwas geändert, ich habe aber keinerlei Ahnung wo ich jetzt ansetzen könnte!

Ciao
Stefan

Nachtrag:
Auch mit den Pfaden habe ich herumprobiert, GetPublicPath, direkt ins Root der SD-Karte, irgendwas stimmt m.E. mit den Berechtigungen nicht, ich habe immer weniger Hinweise wo ich noch suchen könnte!
Und was ich noch nachgesehen habe: der Dateimanager pro zeigt als Berechtigungen "-rw" an, das ist meiner Meinung nach korrekt, oder?

sko1 23. Mär 2017 06:30

AW: Meine erstellte Datei kann nicht geöffnet werden
 
Das Problem ist inzwischen aus einem anderen Licht zu sehen:

Es ist völlig egal, ob die PDF-Datei von meiner App erstellt oder eine ganz andere fremde Datei ist, ich bekomme von der im Intent aufgerufenen App (und da ist wieder egal welche PDF-App ich auswähle) die Fehlermeldung "Datei konnte nicht geöffnet werden"

Es ist auch egal ob ich diese Dateien in SharedDocumentsPath oder SharedDownloadsPath liegen habe, ein vorgeschaltetes FileExists hat keine Probleme, die Datei ist also dort vorhanden und auffindbar!

Wo kann ich jetzt weitersuchen?

Und wie gesagt, auf meinem alten 5.0.2 er Android Handy hatte ich keine Probleme, die sind jetzt erst mit Android 6.0.1 aufgetreten!

Ciao
Stefan

sko1 23. Mär 2017 10:14

AW: Meine erstellte Datei kann nicht geöffnet werden
 
So, nach stundenlangem Probieren habe ich weitere Erkenntnisse:

Wenn ich die PDF-Datei durch eine MP3-Datei ersetze und mit folgendem Intent starte funktioniert es auch auf Android 6.0.1:

Delphi-Quellcode:
  fn := TPath.GetSharedDownloadsPath + PathDelim + 'test.mp3';
  if fileexists(fn) = false then
  begin
    showmessage(fn + ' nicht gefunden !');
    exit;
  end;
  fn := 'file://' + fn;
  Intent := TJIntent.Create;
  Intent.setAction(TJIntent.JavaClass.ACTION_VIEW);
  Intent.setDataAndType(StrToJURI(fn), StringToJString('audio/*'));
  // Intent.setDataAndType(StrToJURI(fn), StringToJString('application/pdf'));
  Intent.setFlags(TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK);
  TAndroidHelper.Activity.startActivity(Intent);
Was ist denn nun mit meinen PDF's bzw. den Viewern los???

Ciao
Stefan

DeddyH 23. Mär 2017 10:20

AW: Meine erstellte Datei kann nicht geöffnet werden
 
Versuch mal testhalber, die Datei ins Temp-Verzeichnis (TPath.Combine(TPath.GetTempPath, Dateiname)) zu kopieren und von dort zu öffnen. Ich kann mich erinnern, dass ich auch schon ähnliche Probleme hatte.

sko1 23. Mär 2017 11:59

AW: Meine erstellte Datei kann nicht geöffnet werden
 
Nach 2 Tagen vergeblicher Suche habe ich jetzt die Lösung, aber bitte nicht schlagen ;-)

Wenn Defaultprogramm gelöscht, dann bietet Android ja alle Apps an die PDF öffnen können, unter anderem eine App namens "PDF-Viewer" und blau weißem Icon und die habe ich auf meinem ersten Handy immer verwendet, also warum nicht auf dem zweiten auch?

Nachdem diese App aber unter Android 6.0.1 immer "Datei kann nicht geöffnet werden" brachte habe ich angefangen in dieser Richtung weiterzusuchen, im Handy unter Einstellungen/Anwendungsprogramme aber habe ich dieses Programm und sein Icon aber nicht gefunden...

Also zum Playstore/Meine Apps, auch dort kein Programm mit dem angezeigten Icon, weder unter installierte noch unter den übrigen...

In der Handy-App-Übersicht findet sich das Icon ebenfalls nicht, ABER ein ähnliches, und zwar von DropBox!

Die lässt sich nicht deinstallieren, aber deaktivieren, also weg damit!

Starte ich jetzt einen Intent um PDF anzuzeigen, ist das "PDF-Viewer-Dropbox-App" nicht mehr dabei und alle anderen (Foxit Reader, Adobe, ... ) öffnen nun klaglos jedes PDF :-)))))))))))))))


Problem gelöst und 2 Tage "sinnlos verballert" :-(

Ciao
Stefan

Rollo62 24. Mär 2017 11:48

AW: Meine erstellte Datei kann nicht geöffnet werden
 
Willkommen im Club der verballerten Tage :lol:

Heisst das jetzt das diese DropBox Viewer App auch die andenen Apps negativ beeinflusst hat ?

Rollo

sko1 24. Mär 2017 15:37

AW: Meine erstellte Datei kann nicht geöffnet werden
 
Sieht zumindest für mich ganz danach aus :-(

Ciao
Stefan


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:33 Uhr.

Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf