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 ) );