这个问题在这里已有答案:
注意: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;
1 回答
解决这个问题 !
我成立的好答案:Delphi open PDF from ios/Android local storage
作者:afzalali15 .
我会尝试上传整个代码 .
不管怎么说,还是要谢谢你 .