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 著作权归作者所有。请勿转载和采集!