注意:Delphi XE8,适用于Android 4.4.2的Firemonkey应用程序
我正在尝试从使用Firemonkey制作的Android应用程序打开一个pdf文档并且只打开Adobe Acrobat,但该文件没有,然后我在几个网页上找到了我已经尝试过的每一个,但是没有一个工作。
错误消息是
Adobe无法找到要打开的文档
但是该文档位于公共文件夹中,我已将其移动到不同的文件夹,并且没有任何动静。
我已经打开了其他文件夹中没有问题的图片,我不明白。
请问有人给我解决方案吗?。
procedure TForm1.bttnAbrirClick(Sender: TObject);
var
NombreFichero,
RutaRaiz,
Ruta_Fichero,
Ruta_Fichero2 : String;
begin
// NombreFichero := 'Doc1.pdf';
// RutaRaiz := 'File:///storage/emulated/0/TabletBigger/Images/Articulos';
// RutaRaiz := '/storage/emulated/0/TabletBigger/Images/Articulos';
// RutaRaiz := '/storage/sdcard0/TabletBigger/Images/Articulos'; // en mi tablet
// Ruta_Fichero := System.IOUtils.TPath.Combine(RutaRaiz, NombreFichero);
// Ruta_Fichero := System.IOUtils.TPath.Combine(System.IOUtils.TPath.GetDownloadsPath, NombreFichero);
// Ruta_Fichero := System.IOUtils.TPath.Combine(System.IOUtils.TPath.GetSharedDownloadsPath, RutaRaiz);
NombreFichero := 'Introduccion.pdf';
Ruta_Fichero2 := '/storage/emulated/0/TabletBigger/Images/Articulos/Introduccion.pdf';
Ruta_Fichero := System.IOUtils.TPath.Combine(System.IOUtils.TPath.GetPublicPath, NombreFichero);
showtext.Text := Ruta_Fichero;
open(Ruta_Fichero);
// Ruta_Fichero := StringReplace(StringReplace( Ruta_Fichero, '\', '\\', [rfReplaceAll]), '"', '\"', [rfReplaceAll]) + '"';
//_system(PAnsiChar('Open ' + AnsiString(Ruta_Fichero)))
end;
procedure TForm1.Open(Ruta_Fichero : String);
var
Intent: JIntent;
begin
if FileExists(Ruta_Fichero) then
begin
Intent := TJIntent.Create;
Intent.setAction(TJIntent.JavaClass.ACTION_VIEW);
Intent.setDataAndType(StrToJURI(Ruta_Fichero), StringToJString('application/pdf'));
Intent.setFlags(TJIntent.JavaClass.FLAG_ACTIVITY_CLEAR_TOP);
try
SharedActivity.startActivity(Intent);
Except
end;
end
else
_MessageDlg('El fichero no existe', mssInf);
end;
答案 0 :(得分:0)