我正在建立一个后备,我DownloadManager将重新启动失败的下载.
if (c.moveToFirst()) {
int columnIndex = c.getColumnIndex(DownloadManager.COLUMN_STATUS);
...
} else if (DownloadManager.STATUS_FAILED == c.getInt(columnIndex)) {
colIndex = c.getColumnIndex(DownloadManager.COLUMN_LOCAL_FILENAME);
String localFilename = c.getString(colIndex);
}
Run Code Online (Sandbox Code Playgroud)
"失败"的案例正在运作,但我的localFilename变量是null.
顺便说一句:这COLUMN_URI是有效的.
有关如何访问目标/本地路径或文件名的任何想法?
所以我使用Download Manager在我的应用程序中下载多个文件.在开始某项活动之前,我需要这些文件才能完成下载.如何检查是否有活动下载,因此我可以告诉用户等待下载完成.然后,当它们完成后,我需要显示一个按钮.我用谷歌搜索了这个,甚至自己尝试了一些代码(盲目地)并且没有任何作用.如果有人能够朝着正确的方向推动我,我将不胜感激.
谁能给我一个关于如何创建一个带有链接的文本视图的想法,当用户单击它时,设备将自动下载该链接中的文件
编辑:
这是正在处理的代码:
String link = "http://www.exampleurl.com/"+pref.getString("fsfile" + count, null);
link = link.replaceAll(" ", "%20");
fsfile.setText("Attached File");
fsfile.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// starting new Async Task
new DownloadFileFromURL().execute(link);
}
});
Run Code Online (Sandbox Code Playgroud)
但似乎String link未在内部识别.setOnClickListener
android download hyperlink android-intent android-download-manager
一个.下载经理Api b.意图服务c.的AsyncTask
请告诉我哪个是最佳做法.是否可以使用上述条款取消正在进行的下载,如果是,请提供我的摘要.
android android-asynctask intentservice android-download-manager
我从SD卡读取文件,并在Gridview上显示.
当我从中选择项目Gridview并获取position项目时.
我点击下载按钮,它将下载该项目.
我使用时如何停止项目下载downloadManager?
代码是下载按钮,如下所示:
FileNode file = mFileList.get(temp_position) ;//Get the item I have select from Gridview
final String filename = file.mName.substring(file.mName.lastIndexOf("/") + 1) ;
final String urlString = "http://" + mIp + file.mName ;
String serviceString = Context.DOWNLOAD_SERVICE ;
DownloadManager downloadManager ;
downloadManager = (DownloadManager) getActivity().getSystemService(
serviceString) ;
Uri uri = Uri.parse(urlString) ;
DownloadManager.Request request = new Request(uri) ;
request.setTitle(filename) ;
request.setDescription(urlString) ;
String ext = filename.substring(filename.lastIndexOf(".") + 1)
.toLowerCase(Locale.US) ;
String mimeType …Run Code Online (Sandbox Code Playgroud) 我正在使用DownloadManager下载文件,我想将下载放在标准下载文件夹中,以便人们可以使用文件管理器在最明显的位置轻松找到它们:
Uri downloadLocation = Uri.fromFile(new File(Environment.DIRECTORY_DOWNLOADS, filename));
request.setDestinationUri(downloadLocation);
Long reference = downloadManager.enqueue(request);
Run Code Online (Sandbox Code Playgroud)
但我得到一个例外,因为那不是外部驱动器.
有没有办法将文件下载到用户的下载文件夹?
而且,如果他们没有外部记忆,只是内部?
谢谢.
我写了一个代码来使用a DownloadManager来下载一些文件.现在我想做以下事情:
DownloadManager通知栏内和谷歌内部当前页面内)我想将图像文件保存在图库中,以便可以从图库应用程序中查看图像。
但是我想要创建一个单独的目录,就像我们在图库应用程序中为whatsapp Images等应用程序创建目录一样。
到目前为止,我已经编写了此代码来下载图像
public void createDir(){
File dir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), DIR_NAME);
Log.d(LOG_TAG, "dir pictr :" + dir.toString());
if (!dir.exists()) {
dir.mkdir();
Log.d(LOG_TAG, "dir not exists and created first time");
} else {
Log.d(LOG_TAG, "dir exists");
}
}
Run Code Online (Sandbox Code Playgroud)
上面的代码在gallery dir中创建了目录
Uri imageLink = Uri.parse(downloadUrlOfImage); // this is download link like www.com/abc.jpg
CreateDir();
DownloadManager.Request request = new DownloadManager.Request(imageLink);
File dir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), DIR_NAME);
String absPath = dir.getAbsoultePath();
request.setDestinationUri(Uri.parse(absPath + "image.jpg"));
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
DownloadManager dm = (DownloadManager) getContext().getSystemService(Context.DOWNLOAD_SERVICE);
dm.enqueue(request);
Run Code Online (Sandbox Code Playgroud)
但这给我错误 java.lang.IllegalArgumentException: …
我们可以将数据写入外部存储而无需在清单中添加写入权限吗?存储访问框架或下载管理器是否为此提供了任何支持?
我想检查当前是否正在下载。我正在使用下面的代码:
public static boolean isDownloading(Context context){
DownloadManager.Query query = null;
Cursor c = null;
DownloadManager downloadManager = null;
downloadManager = (DownloadManager)context.getSystemService(Context.DOWNLOAD_SERVICE);
query = new DownloadManager.Query();
if(query!=null) {
//return true;
query.setFilterByStatus(DownloadManager.STATUS_FAILED|DownloadManager.STATUS_PAUSED|DownloadManager.STATUS_SUCCESSFUL|
DownloadManager.STATUS_RUNNING|DownloadManager.STATUS_PENDING);
} else {
Log.i("AUTOMATION_DOW" , "NO ");
return false;
}
c = downloadManager.query(query);
if(c.moveToFirst()) {
int status = c.getInt(c.getColumnIndex(DownloadManager.COLUMN_STATUS));
switch(status) {
case DownloadManager.STATUS_PAUSED:
Log.i("AUTOMATION_DOWNLOAD","PAUSED");
break;
case DownloadManager.STATUS_PENDING:
Log.i("AUTOMATION_DOWNLOAD","PENDING");
break;
case DownloadManager.STATUS_RUNNING:
Log.i("AUTOMATION_DOWNLOAD","RUNNING");
break;
case DownloadManager.STATUS_SUCCESSFUL:
Log.i("AUTOMATION_DOWNLOAD","SUCCESSFUL");
break;
case DownloadManager.STATUS_FAILED:
Log.i("AUTOMATION_DOWNLOAD","FAILED");
break;
}
}
Log.i("AUTOMATION_DOWNLOAD","DEFAULT");
c.close();
return true;
}
Run Code Online (Sandbox Code Playgroud)
即使正在运行下载,我也有以下logcat: …