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');
// Versuch es mal statt StrToJURL mit FileToUrl
// passt nicht 1:1, weil Du kein temp. File hast, aber so funktioniert das bei mir
LImageFile := TJFile.JavaClass.createTempFile(
StringToJString( '
attachment' + AIndex.ToString ),
StringToJString('
.png'),
LOutputDir);
fileuri := TAndroidHelper.JFileToJURI( LImageFile );
Intent := TJIntent.Create;
Intent.setAction(TJIntent.JavaClass.ACTION_VIEW);
Intent.setDataAndType(fileuri,StringToJString('
application/pdf'));
// Und die Permissions setze ich dabei so, mit addFlags
//Intent.setFlags(TJIntent.JavaClass.FLAG_GRANT_READ_URI_PERMISSION);
Intent.setFlags( TJIntent.JavaClass.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET );
//<-- versuch mal das
Intent.addFlags( TJIntent.JavaClass.FLAG_GRANT_READ_URI_PERMISSION );
// und mit addFlags
TAndroidHelper.Activity.StartActivity(Intent);
end;
So funktioniert das sharing bei mir, auch auf Android 9.
Es gab da Änderungeb ich glaube ab API26, schau man in JFileToJURI.