在某个 Q 群里有人问如何在安卓里打开 PDF 文件。
俺随手搜索了一下,马上获得答案:
https://stackoverflow.com/questions/28699574/delphi-open-pdf-from-ios-android-local-storage?rq=1
实际上的代码就是这样几行:
procedure btnPdfClick(Sender: TObject);
var
fName : String;
{$IFDEF ANDROID}
Intent : JIntent;
URI : Jnet_Uri;
{$ENDIF}
begin
fName := TPath.GetSharedDownloadsPath + PathDelim + 'test.pdf';
{$IFDEF ANDROID}
URI := TJnet_Uri.JavaClass.parse(StringToJString('file:///' + fName));
intent := TJIntent.Create;
intent.setAction(TJIntent.JavaClass.ACTION_VIEW);
intent.setDataAndType(URI,StringToJString('application/pdf'));
SharedActivity.startActivity(intent);
{$ENDIF}
end;
有了这几行代码,任何安卓系统支持的文件,都可以打开。
这里对于文件的描述,是一个 URI,因此,理论上,是一个网络文件,比如 http://xxx.xxx.xx/abc.mp4 也是能打开的。
不过根据我的经验,如果你的手机安装了多个播放器,这时候系统会问你用哪个播放器。