【发布时间】:2015-04-23 04:18:49
【问题描述】:
我正在尝试打开由 DownloadManager 下载的 pdf 文件,但在装有 Android 4.1.2 的三星 Galaxy S3 上时常出现“文档路径无效”
意图:
Intent openIntent = new Intent(Intent.ACTION_VIEW);
openIntent.setDataAndType(downloadManager.getUriForDownloadedFile(lastDownloadId), "application/pdf");
startActivity(openIntent);
权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
下载管理器:
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).mkdirs();
DownloadManager downloadManager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE);
long lastDownloadId = downloadManager.enqueue(new DownloadManager.Request(uri)
.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI | DownloadManager.Request.NETWORK_MOBILE)
.setAllowedOverRoaming(false)
.setTitle(title)
.setDescription(description)
.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "myfile.pdf"));
我做错了什么?
编辑: 有时我会得到这个:
COLUMN_ID: 108
COLUMN_BYTES_DOWNLOADED_SO_FAR: 33085
COLUMN_LAST_MODIFIED_TIMESTAMP: 1397152425941
COLUMN_LOCAL_URI: null
COLUMN_STATUS: 16 COLUMN_REASON: 1008
为什么?
【问题讨论】:
-
getUriForDownloadedFile()返回什么值? -
@CommonsWare - 有时它返回 null。为什么?我编辑了我的答案。
标签: android android-download-manager