0

私のアプリでは、いくつかの pdf がアセット フォルダーに保存されています。PDF ページを開くためのライブラリを見たことがありますが、quickoffice などのアプリは、私が見たライブラリよりも PDF を表示するのに優れていると思います。したがって、次のように を使用して pdf を表示したいとIntent.ACTION_VIEW思います。

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(fileUri, "application/pdf");
getActivity().startActivity(intent);

ただし、サードパーティのアプリはパッケージ内のファイルにアクセスできないため、これは不可能です。したがって、ファイルを外部ストレージにコピーし、そのファイルをインテントに提供する必要があります。

それは私の質問になります:私のPDFはサイズが非常に大きいので、それらを2回保存するのはばかげていると思います(1回はアセットフォルダーに、もう1回は外部ストレージに)。だから、これに対する回避策があるかどうか疑問に思っています。たとえば、次のことができますか:

//Copy file to external storage
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(fileUri, "application/pdf");
getActivity().startActivity(intent);
//Delete file from external storage

これは良い回避策ですか、それとも PDF 表示アプリで問題が発生しますか? または、別の回避策がありますか?

4

1 に答える 1