smart_download_manager_plus 1.0.0 copy "smart_download_manager_plus: ^1.0.0" to clipboard
smart_download_manager_plus: ^1.0.0 copied to clipboard

A Flutter package to download files to Android Downloads folder with notifications.

Flutter Download Manager #

A powerful, resumable, and queue-based download manager for Flutter — built for production apps.


Highlights #

  • Parallel downloads with queue system
  • Resume & pause downloads
  • Smart retry mechanism
  • Real-time progress & speed tracking
  • Save directly to Downloads (Android MediaStore)
  • iOS support (Documents directory)
  • Built-in notifications
  • Batch downloads
  • Persistent tasks (auto restore)
  • Open file automatically after download

Preview #

[Screenshot_1] [Screenshot_2] [Screenshot_3] [Screenshot_4]


Installation #

dependencies:
  flutter_download_manager: latest

Quick Start #

Initialize #

await
DownloadNotificationService.init
();await
DownloadNotificationService.requestPermission
();

Create Controller #


final controller = DownloadController(
  maxConcurrent: 2,
);

Download a File #


final task = controller.addTask(
  'https://example.com/file.pdf',
  subFolder: 'MyApp',
  openAfterDownload: true,
);

await
controller.startTask
(
task
);

Usage Examples #

Download PDF #

controller.addTask
('https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf
'
,openAfterDownload:
true
,
);

Download Image #

controller.addTask
('https://www.w3.org/Icons/w3c_home.png
'
,
);

Batch Download #

controller.addBatch
([
'https://example.com/file1.pdf',
'https://example.com/file2.png',
]);

Pause / Resume #

controller.pauseTask
(
task
);
controller
.
resumeTask
(
task
);

Cancel #

await
controller.cancelTask
(
task
);

Open File After Download #

Automatically open files when completed:

controller.addTask
(
url
,
openAfterDownload
:
true
,
);

File Storage #

Android #

  • Uses MediaStore API
  • Saves to Downloads/
  • No storage permission required

iOS #

  • Saves to Application Documents Directory

Listen to Progress #

controller.onTaskUpdated.listen
(
(task) {
print(task.progress);
});

Configuration #

Option Description
maxConcurrent Number of parallel downloads
priority Download priority
headers Custom request headers
retryDelay Delay between retries
maxRetries Retry attempts
subFolder Save inside subfolder
openAfterDownload Auto open file

How It Works #

  • Uses Dio for downloading
  • Supports HTTP Range requests (resume)
  • Stores tasks using SharedPreferences
  • Uses MethodChannel for Android file saving

⚠️ Notes #

  • Resume requires server support for Range headers
  • Some file types require external apps to open
  • Android 13+ requires notification permission


5
likes
0
points
278
downloads

Publisher

unverified uploader

Weekly Downloads

A Flutter package to download files to Android Downloads folder with notifications.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

awesome_notifications, dio, flutter, open_filex, path_provider, plugin_platform_interface, shared_preferences

More

Packages that depend on smart_download_manager_plus

Packages that implement smart_download_manager_plus