Android 图片下载功能实现 - 使用 DownloadManager 类
Android 图片下载功能实现 - 使用 DownloadManager 类
在 Android 应用中,使用 DownloadManager 类可以方便地实现图片下载功能。DownloadManager 类提供了一套完整的 API,可以管理下载任务,并提供下载状态和进度信息。
示例代码:
public void dow_imgone(final View view) {
//其他代码
if (imageUrl != null) {
String fileName = 'image.jpg';
File downloadDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
downloadImage(MainActivity.this, imageUrl, downloadDir.getAbsolutePath(), fileName);
return '获取链接成功' + imageUrl + '文件将保存到:' + downloadDir;
} else {
ClipboardManager clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
ClipData clip = ClipData.newPlainText('imageUrl', imageUrl);
clipboard.setPrimaryClip(clip);
return '未能提取到图片地址' + imageUrl;
}
} catch (IOException e) {
e.printStackTrace();
return '下载失败';
}
}
@Override
protected void onPostExecute(String result) {
Toast.makeText(MainActivity.this, result, Toast.LENGTH_SHORT).show();
}
}.execute();
}
public void downloadImage(Context context, String url, String downloadDir, String fileName) {
DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url));
request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI | DownloadManager.Request.NETWORK_MOBILE)
.setAllowedOverRoaming(false)
.setTitle(fileName)
.setMimeType('image/jpeg')
.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED)
.setDestinationInExternalPublicDir(downloadDir, fileName);
DownloadManager downloadManager = (DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE);
downloadManager.enqueue(request);
}
**在 dow_imgone 方法中调用 downloadImage 的正确方式是:**
```java
downloadImage(MainActivity.this, imageUrl, downloadDir.getAbsolutePath(), fileName);
解释:
downloadImage(MainActivity.this, imageUrl, downloadDir.getAbsolutePath(), fileName)调用了downloadImage方法,传递了必要的参数,包括Context对象(当前 Activity)、图片 URL、下载目录的绝对路径和文件名。downloadDir.getAbsolutePath()获取了下载目录的绝对路径,以便 DownloadManager 类可以将下载的文件保存到正确的目录下。
其他注意事项:
- 确保
android.permission.WRITE_EXTERNAL_STORAGE权限已授予您的应用程序,以便能够将文件保存到外部存储。 - 使用
DownloadManager类可以方便地处理下载进度和状态,您可以在onPostExecute方法中获取下载结果。
总结:
本文介绍了在 Android 应用中使用 DownloadManager 类实现图片下载功能的步骤,并提供示例代码和最佳实践,帮助开发者快速构建高效的图片下载功能。
原文地址: https://www.cveoy.top/t/topic/csoo 著作权归作者所有。请勿转载和采集!