在android中下载后无法从我的应用程序打开文件(pdf/doc)
我正在从url下载文件(pf/doc)。我也有读写权限&提供程序也在清单和提供程序路径中定义 文件已成功下载到我的手机“下载”文件夹中。但当我尝试用以下代码打开文件时,会出现一个错误在android中下载后无法从我的应用程序打开文件(pdf/doc),android,android-fileprovider,Android,Android Fileprovider,我正在从url下载文件(pf/doc)。我也有读写权限&提供程序也在清单和提供程序路径中定义 文件已成功下载到我的手机“下载”文件夹中。但当我尝试用以下代码打开文件时,会出现一个错误“无法访问此文件。请检查您的连接或缩短文件名” 附件URI-content://com.hello.provider/external_files/Download/ac_xyz-2.pdf我也无法打开文档文件 文件下载代码: if (url != null && !url.isEmpty()) {
“无法访问此文件。请检查您的连接或缩短文件名”
附件URI-content://com.hello.provider/external_files/Download/ac_xyz-2.pdf
我也无法打开文档文件
文件下载代码:
if (url != null && !url.isEmpty()) {
val uri = Uri.parse(url)
activity.registerReceiver(
attachmentDownloadCompleteReceive, IntentFilter(
DownloadManager.ACTION_DOWNLOAD_COMPLETE
)
)
val request = DownloadManager.Request(uri)
request.setMimeType(getMimeType(uri.toString()))
request.setTitle(fileName)
request.setDescription("Downloading attachment..")
request.allowScanningByMediaScanner()
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED)
request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, fileName)
val dm = activity.getSystemService(Context.DOWNLOAD_SERVICE) as DownloadManager
dm.enqueue(request)
}
有没有办法解决此错误?您正在尝试使用文件提供程序为下载文件夹中的文件建立uri 不需要 注册一个广播接收器以完成操作下载,下载完成后您将收到通知
此外,您还可以从DownloadManager获得一个很好的uri,您可以在pdf阅读器的操作视图中使用该uri。您应该开始您的帖子,告诉我们是谁下载了该文件以及如何下载的。谁决定将其存储在该路径中?之后,您应该展示如何构建attachmentUri。目前我们不知道你在做什么。另外,请告知所用设备的Android版本。此外,还不清楚是哪个应用程序导致了您提到的错误。添加了下载文件代码。我有默认应用程序adobe acrobat打开pdfAndroid版本!我已经在关注这些事情了。我已经注册了广播接收机。我使用val downloadLocalUri=cursor.getString(cursor.getColumnIndex(DownloadManager.COLUMN_LOCAL_URI))从下载管理器获取url。我现在明白了。但是为什么你要在这个uri上和你的文件提供者乱搞呢?毫无意义。按原样使用它。因为我得到了file://storage/0/download/as.pdf &我不能直接打开这个文件!这就是为什么我要把它转换成内容。。我懂了。那件事从来没有发生在我身上。那么请把你的广播接收机代码也发出来。我想看看。但是意识到……如果您不能直接打开该文件,那么让您的文件提供商尝试打开并提供该文件是没有意义的,因为它当然也无法打开该文件。
if (url != null && !url.isEmpty()) {
val uri = Uri.parse(url)
activity.registerReceiver(
attachmentDownloadCompleteReceive, IntentFilter(
DownloadManager.ACTION_DOWNLOAD_COMPLETE
)
)
val request = DownloadManager.Request(uri)
request.setMimeType(getMimeType(uri.toString()))
request.setTitle(fileName)
request.setDescription("Downloading attachment..")
request.allowScanningByMediaScanner()
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED)
request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, fileName)
val dm = activity.getSystemService(Context.DOWNLOAD_SERVICE) as DownloadManager
dm.enqueue(request)
}