我在DownloadManager
时遇到了奇怪的问题,下载成功了,但文件没有存储。
这是我的代码:
try {
DownloadManager manager = (DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE);
DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url));
request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI | DownloadManager.Request.NETWORK_MOBILE);
request.setAllowedOverRoaming(false);
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_HIDDEN);
request.setDestinationInExternalFilesDir(context, /temp/, "test.mp4");
final long downloadId = manager.enqueue(request);
boolean downloading = true;
while (downloading) {
DownloadManager.Query query = new DownloadManager.Query();
query.setFilterById(downloadId);
Cursor cursor = manager.query(query);
cursor.moveToFirst();
int status = cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_STATUS));
int bytesDownloaded = cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_BYTES_DOWNLOADED_SO_FAR));
int bytesTotal = cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_TOTAL_SIZE_BYTES));
if(status==DownloadManager.STATUS_SUCCESSFUL){
Log.i("Progress", "success");
downloading = false;
}
final int progress = (int) ((bytesDownloaded * 100l) / bytesTotal);
cursor.close();
subscriber.onNext(progress);
}
subscriber.onCompleted();
}catch (Exception e){
subscriber.onError(e);
}
我的清单中也包含了write_external_storage
。我尝试将目录更改为environment.directory_downloads
,但是文件仍然没有存储到downloads目录。我试图在/android/data/
上找到它,但下载的文件也不在那里。那么我的代码出了什么问题?
我也有这个问题,但当我改变时它解决了
request.setDestinationInExternalFilesDir(context, Environment.DIRECTORY_DOWNLOADS, videoName+".mp4");
到
request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS.toString(), videoName+".mp4");
现在它保存在“下载”文件夹。
我设法用Selenium静默下载了文件。但是Firefox通过添加1、2、3自动重命名该文件。文件名,因为服务器发送的每个文件都具有相同的名称。但我想根据当前的日期和时间重命名文件。于是,试着: > 开始下载文件->DownloadLink.Click(); 而(不存在带有原始名称的文件或不存在 .part) · · { } 将下载的文件重命名为所需的名称。 但它会重命名一些文件。有些文件长度为0
似乎MediaScanner想要扫描我告诉它不要扫描的文件。现在我想知道为什么。 我的应用程序从我的服务器下载多个媒体文件,并在稍后显示播放列表。 为此,该应用程序通过Android系统的DownloadManager获取媒体文件。 使用请求。setDestinationUri(),下载将保存到名为“挂起”的getExternalCacheDir()的子目录中。 下载完成后,Android Dow
问题内容: 我正在尝试捕获下载完成事件,但是我的BroadcastReceiver没有收到它们。这是接收者: 这是清单: 有人知道怎么了吗? 问题答案: 为您的接收者使用完整的软件包名称,例如 Add 可以从其应用程序的来源接收消息。 更改的名称在以 仅当从您的应用程序使用进行注册时,才会触发接收器 要排队的代码下载:
本文向大家介绍使用Android系统提供的DownloadManager来下载文件,包括了使用Android系统提供的DownloadManager来下载文件的使用技巧和注意事项,需要的朋友参考一下 在android2.3以后android系统提供了一个系统组件来供其他app调用来下载东西,使用起来非常方便。 例如我们可以拿来下载app的新版本apk,同时在同时注册一个广播接收器来接收下载完成时D
问题内容: 我们一直在寻找答案,但是还没有找到解决方案。 我们有一个Web服务器,允许用户下载动态生成的文件(pdf),并通过servlet提供服务。我们想知道下载何时完成(以及如何:成功,失败,用户取消了吗?)。 没有用户输入,有没有办法知道这一点?这些文件相对较小,因此不需要进度条功能,但是我们需要某种“挂勾”功能,可以在下载完成后向您报告。这可能吗? [edit]浏览器端将具有什么功能来检测
问题内容: 我需要从FTP读取CSV文件头。 由于这些文件可能非常庞大,因此我不需要下载它们。 有没有办法从FTP读取CSV文件的第一行并中止连接? 问题答案: 只需阅读第一行,忽略剩余内容并关闭流。智能FTP客户端不会在提供任何内容供读取之前将 整个 流缓冲在内存中。 假设您使用的是Apache Commons Net FTPClient: