Android 从内部存储器中的下载文件夹中打开下载的文件(pdf)
我使用下载管理器下载了一个文件(133465.pdf),现在它存储在手机的下载文件夹(内部存储)中 我应该如何尝试从下载文件夹中检索下载的pdf 我正在使用下面的代码尝试从下载文件夹中检索pdf,但我在Toast上遇到一个错误,说“无法显示pdf(133465.pdf无法打开)” 我不知道我是否使用了正确的文件位置来访问该文件Android 从内部存储器中的下载文件夹中打开下载的文件(pdf),android,file,pdf,android-intent,android-download-manager,Android,File,Pdf,Android Intent,Android Download Manager,我使用下载管理器下载了一个文件(133465.pdf),现在它存储在手机的下载文件夹(内部存储)中 我应该如何尝试从下载文件夹中检索下载的pdf 我正在使用下面的代码尝试从下载文件夹中检索pdf,但我在Toast上遇到一个错误,说“无法显示pdf(133465.pdf无法打开)” 我不知道我是否使用了正确的文件位置来访问该文件 任何帮助或建议都将不胜感激。如果您为Lolloop及以下公司工作:您不必在运行时向用户请求许可。清单权限就可以了 如果您为Marshmellow和up工作:您必须要求用户
任何帮助或建议都将不胜感激。如果您为Lolloop及以下公司工作:您不必在运行时向用户请求许可。清单权限就可以了 如果您为Marshmellow和up工作:您必须要求用户在运行时提供帮助,并根据用户的输出采取行动 记住:您还必须授予清单上的权限 要在用户下载文件夹中下载PDF文件:
DownloadManager downloadmanager;
Environment
.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)
.mkdirs();
downloadmanager = (DownloadManager) getApplication().getSystemService(Context.DOWNLOAD_SERVICE);
String url = hardcode + bb ;
Uri uri = Uri.parse(url);
DownloadManager.Request request = new DownloadManager.Request(uri)
.setTitle(bb )
.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS,
bb)
.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
Log.i("Download1", String.valueOf(request));
downloadmanager.enqueue(request);
File file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).getPath() + File.separator +
"YOUR FILE NAME");
Uri path = Uri.fromFile(file);
Log.i("Fragment2", String.valueOf(path));
Intent pdfOpenintent = new Intent(Intent.ACTION_VIEW);
pdfOpenintent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
pdfOpenintent.setDataAndType(path, "application/pdf");
try {
this.startActivity(pdfOpenintent);
} catch (ActivityNotFoundException e) {
}
从用户设备的下载文件夹查看下载的PDF:
DownloadManager downloadmanager;
Environment
.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)
.mkdirs();
downloadmanager = (DownloadManager) getApplication().getSystemService(Context.DOWNLOAD_SERVICE);
String url = hardcode + bb ;
Uri uri = Uri.parse(url);
DownloadManager.Request request = new DownloadManager.Request(uri)
.setTitle(bb )
.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS,
bb)
.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
Log.i("Download1", String.valueOf(request));
downloadmanager.enqueue(request);
File file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).getPath() + File.separator +
"YOUR FILE NAME");
Uri path = Uri.fromFile(file);
Log.i("Fragment2", String.valueOf(path));
Intent pdfOpenintent = new Intent(Intent.ACTION_VIEW);
pdfOpenintent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
pdfOpenintent.setDataAndType(path, "application/pdf");
try {
this.startActivity(pdfOpenintent);
} catch (ActivityNotFoundException e) {
}
注意:在下载之前,请确保您已获得授权查看Marshmellow及以上版本的PDF文件。下载失败。。知道为什么会发生这种情况吗?工作正常,但存在一个关于“Environment.getExterbalStoragePublicDirectory”提供的不推荐文件的问题。请更新新代码。