携帯電話に「adobe.pdf」という名前の PDF ファイルがあることを確認できます。/storage/emulated/0/Documents/adobe.pdf
URLリンクからpdfをダウンロードし、ドキュメントに保存しました。以下、ダウンロードして保存した方法です。これは、同じアプリ内の別のアクティビティです。
public void DownloadBooks(String url,String title){
DownloadManager.Request request=new DownloadManager.Request(Uri.parse(url));
String tempTitle=title.trim();
request.setTitle(tempTitle);
if(Build.VERSION.SDK_INT>= Build.VERSION_CODES.HONEYCOMB){
request.allowScanningByMediaScanner();
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
}
request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOCUMENTS,tempTitle+".pdf");
DownloadManager downloadManager=(DownloadManager)getSystemService(Context.DOWNLOAD_SERVICE);
request.setMimeType("application/pdf");
request.allowScanningByMediaScanner();
request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_MOBILE | DownloadManager.Request.NETWORK_WIFI);
downloadManager.enqueue(request);
}
DownloadBooks("a link"," adobe");
ダウンロードが完了すると、pdf adobe.pdfが保存され /storage/emulated/0/Documents/
、このダウンロードした PDF を表示したいと考えています。
ライブラリを使用して PDF を表示していますが、表示されません。これが私のコードです
package com.shivansh.firebasedemo;
public class DownloadedPDFViewerActivity extends AppCompatActivity implements ViewPager.OnPageChangeListener, OnLoadCompleteListener {
PDFView pdfView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_downloaded_p_d_f);
pdfView =findViewById(R.id.pdfView);
File root = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS);
File file = new File(root,"adobe.pdf");
Log.i("5656",file.toString());
pdfView.fromFile(file).
enableSwipe(true)
.defaultPage(0)
.swipeHorizontal(false)
.onLoad(this)
.load();
}
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
}
@Override
public void onPageScrollStateChanged(int state) {
}
@Override
public void loadComplete(int nbPages) {
}
}
上記のログステートメントが出力されます
2021-05-06 03:13:31.734 9470-9470/com.shivansh.firebasedemo I/5656: /storage/emulated/0/Documents/adobe.pdf
これは、デバイス上のファイルの正しい場所を見つけたことを示しています。
さて、このpdfをアクティビティでレンダリングするにはどうすればよいですか?