Java 从设备';在android中使用barteksc/AndroidPDViewer库时,s的内部存储不可见
我可以保证手机中有一个名为“adobe.pdf”的pdf文件,位于Java 从设备';在android中使用barteksc/AndroidPDViewer库时,s的内部存储不可见,java,android,pdf,androidpdfviewer,Java,Android,Pdf,Androidpdfviewer,我可以保证手机中有一个名为“adobe.pdf”的pdf文件,位于/storage/emulated/0/Documents/adobe.pdf 我通过URL链接下载了pdf文件,并将其存储在文档中。下面是我下载和存储它的方式。这是同一应用程序中的另一项活动 public void DownloadBooks(String url,String title){ DownloadManager.Request request=new DownloadManager.R
/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");
下载完成后,pdfadobe.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?Android版本的旧设备?您是如何获得读取权限的?还可以使用file.exists()和file.canRead()。您好,我在Android 11上。我使用
获得读取权限file.exists()
的输出为true
和'file.canRead()`isfalse
,那么我如何读取此文件?这是我下载@blackapps的同一个pdf文件。你知道交易:)谁下载了该文件?您的应用程序如何知道该文件路径?