AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung Fehler beim Android-FileProvider: Datei wird nicht geöffnet
Thema durchsuchen
Ansicht
Themen-Optionen

Fehler beim Android-FileProvider: Datei wird nicht geöffnet

Ein Thema von philipp.hofmann · begonnen am 21. Mai 2019 · letzter Beitrag vom 18. Dez 2020
 
philipp.hofmann

Registriert seit: 21. Mär 2012
Ort: Hannover
927 Beiträge
 
Delphi 10.4 Sydney
 
#1

Fehler beim Android-FileProvider: Datei wird nicht geöffnet

  Alt 21. Mai 2019, 09:13
Hi,

ich finde den Fehler nicht, warum ich meine pdf nicht unter Android mit der damit verbundenen Standard-App öffnen kann:

Mit meiner App liefere ich die Datei:
Android/data/com.icTrainer/files/docs/icTrainer.pdf
aus, welche ich auch problemlos über den Dateimanager öffnen kann. Ich möchte die Datei jetzt auch über die App in der damit verbundenen Standard-App öffnen.

Dazu definiere ich in Android\Release\icTrainer\AndroidManifest den FileProvider (ich dokumentiere die ausgelieferten xml-Files nicht die Templates):

Delphi-Quellcode:
    ...
   <provider android:name="android.support.v4.content.FileProvider"
           android:authorities="com.icTrainer.fileprovider"
           android:exported="false"
           android:grantUriPermissions="true">
           <meta-data
             android:name="android.support.FILE_PROVIDER_PATHS"
             android:resource="@xml/fileprovider" />
        </provider>
    </application>
Und diesen definiere ich in Android\Release\icTrainer\res\xml\fileprovider.xml
Delphi-Quellcode:
<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
  <files-path name="ictresources" path="docs/" />
</paths>
und nun rufe ich es folgendermaßen via Delphi auf:
Delphi-Quellcode:
    var
     fileuri: JNet_Uri;
     Intent: JIntent;
    begin
      fileuri := StrToJURI('content://com.icTrainer.fileprovider/ictresources/icTrainer.pdf');
      Intent := TJIntent.Create;
      Intent.setAction(TJIntent.JavaClass.ACTION_VIEW);
      Intent.setDataAndType(fileuri,StringToJString('application/pdf'));
      Intent.setFlags(TJIntent.JavaClass.FLAG_GRANT_READ_URI_PERMISSION);
      TAndroidHelper.Activity.StartActivity(Intent);
    end;
Trotzdem zeigt mir z.B. Word den Fehler
"Datei kann nicht geöffnet werden. Versuchen Sie, die Datei auf dem Gerät zu speicheren und sie dann zu öffnen"
an und öffnet das pdf-File nicht.

Wo ist der Fehler? Ich sträubte mich die Datei zuerst in ein öffentliches Verzeichnis zu kopieren, weil dadurch unnötiger Datenmüll entsteht.

Grüße, Philipp
  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 08:23 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