Wir haben das bei uns so gelöst:
Delphi-Quellcode:
const
cFileUrlPrefix = 'file://';
function GetMimeType: JString;
var
jstr: JString;
begin
// MIME-Type auslesen
result := StringToJString('application/pdf'); // Standard
jstr := TJMimeTypeMap.JavaClass.getFileExtensionFromUrl(StringToJString(cFileUrlPrefix + FFilename));
if jstr <> nil then begin
jstr := TJMimeTypeMap.JavaClass.getSingleton.getMimeTypeFromExtension(jstr);
if jstr <> nil then
result := jstr;
end;
end;
procedure TShareButton.DoOpenAction;
var
Intent: JIntent;
begin
Intent := TJIntent.Create;
Intent.setAction(TJIntent.JavaClass.ACTION_VIEW);
Intent.setFlags(TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK);
Intent.setDataAndType(TJnet_Uri.JavaClass.parse(StringToJString(cFileUrlPrefix + FFileName)), GetMimeType);
TAndroidHelper.Activity.startActivity(TJIntent.JavaClass.createChooser(Intent, StrToJCharSequence('Bitte App auswählen...')));
end;