资产文件夹中的 Pdf 文件未在第三方应用程序中打开

Pdf File In asset folder not open in thirdparty app

嗨,我是 android 的新人,我有一些 PDF 文件存在于此路径 asset/pdf/example.pdf

当我尝试使用此代码生成 PDF 文件时

Intent intent = new Intent(Intent.ACTION_VIEW);
    File file = new File("file:///android_asset/pdf/example.pdf");
    intent.setDataAndType( Uri.fromFile( file ), "application/pdf" );
    startActivity(intent);

我收到此错误并且知道这是因为第三方无权访问文件 什么是解决方案?

know it's because third party has no access to file

file:///android_asset/ 仅适用于 WebView AFAIK。

what is solution?

您可以使用 my StreamProvider,它提供了一个 ContentProvider,可以提供来自 assets/ 的文件。

或者,您可以实现自己的 ContentProvider 来提供来自 assets/ 的文件。

或者,您可以将资产复制到本地文件(例如,在 getFilesDir()getCacheDir() 中),then use FileProvider to serve that local file