Einzelnen Beitrag anzeigen

Rollo62

Registriert seit: 15. Mär 2007
2.134 Beiträge
 
Delphi 10.3 Rio
 
#4

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

  Alt 22. Mai 2019, 13:15
Doch, ich muss die FileProvider Option aktiviert haben (Entitlements Secure File, ...)
Deshalb meinte ich hja das Du mal in den JFileToJURI schaust, da wird das je nach Version umgeschaltet.

Delphi-Quellcode:
  if TOSVersion.Check(7) then
  begin
    LAuthority := Context.getApplicationContext.getPackageName.concat(StringToJString('.fileprovider'));
    Result := TJFileProvider.JavaClass.getUriForFile(Context, LAuthority, AFile);
  end
  else
    Result := TJnet_uri.JavaClass.fromFile(AFile);
Ich habe das aus gefühlten 1000 Quellen zusammengesucht, wo ich des öfteren gefunden hatte
das die Uri-Erstellung kritisch ist.

Ich benutze ein temporäres Verzeichnis, aber damit müsste man auch anders die Uri erzeugen können.
Der provider_path sieht bei mir so aus, und ich meine gelesen zu haben der "." dot bedeutet Root-Zugriff.
Delphi-Quellcode:
<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
    <external-path name="external_files" path="." />
</paths>
Ist denn icTrainer.pdf dein lokales File ?
Dann versuch es doch mal genauso mit dem temp. Verzeichnis.
Delphi-Quellcode:
  LImageFile := TJFile.JavaClass.createTempFile(
                                       StringToJString( 'icTrainer' ),
                                       StringToJString('.pdf'),
                                       LOutputDir);
      fileuri := TAndroidHelper.JFileToJURI( LImageFile );
Speicher vor dem Versenden mache ich hiermit
    AImage.SaveToFile( JStringToString( LImageFile.getAbsolutePath ) );
  Mit Zitat antworten Zitat