用 Delphi 写的 APP 要打开诸如 MP4,PDF 等文件,可以调用安卓系统里的其它程序来打开。调用方法,我之前写过一篇:
https://blog.youkuaiyun.com/pcplayer/article/details/80852385
最近要播放 MP4,再次把这段代码拿来测试了一下。发现在 Delphi 10.3.1 + Android 9.0 的情况下:
URI := TJnet_Uri.JavaClass.parse(StringToJString('file:///' + fName)); 这一句搞出来的 URI 会导致异常。
网上查了一下:
https://en.delphipraxis.net/topic/1437-pdf-view-on-android/
LUri := TAndroidHelper.JFileToJURI(TJFile.JavaClass.init(StringToJString(AFileName)));
因此,如果要播放 MP4,代码就是这样:
Uri := TAndroidHelper.JFileToJURI(TJFile.JavaClass.init(StringToJString(AURI)));
Intent := TJIntent.JavaClass.init(TJIntent.JavaClass.ACTION_VIEW);
intent.setDataAndType(uri, StringToJstring('video/mp4'));
Intent.setFlags(TJIntent.JavaClass.FLAG_GRANT_READ_URI_PERMISSION);
TAndroidHelper.Activity.startActivity(Intent); //pcplayer 2018-4-11