A Microsoft open-source framework for building native device applications spanning mobile, tablet, and desktop.
Hi @Qun Shen ,
Thanks for reaching out.
I suggest using Android's DownloadManager which allows downloads to continue even when the app is closed or the screen is off.
While this is a non-Microsoft link, it’s official Android documentation and is safe to visit.
Here are the steps and code examples:
- We create interface in shared code.
public interface IDownloadService
{
void StartDownload(string url, string fileName);
}
- Next, implement in
Platforms/Android.
using Android.App;
using Android.Content;
using Android.Net;
public class DownloadService : IDownloadService
{
public void StartDownload(string url, string fileName)
{
var dm = (DownloadManager)Platform.CurrentActivity.GetSystemService(Context.DownloadService);
var request = new DownloadManager.Request(Uri.Parse(url));
request.SetTitle("Downloading...");
request.SetDestinationInExternalPublicDir(Android.OS.Environment.DirectoryDownloads, fileName);
request.SetNotificationVisibility(DownloadVisibility.VisibleNotifyCompleted);
dm.Enqueue(request); // starts download
}
}
- Don't forget to register in
MauiProgram.cs.
builder.Services.AddSingleton<IDownloadService, DownloadService>();
- Call it.
await downloadService.StartDownload("https://example.com/file.zip", "file.zip");
NOTE: Internet permission is required in your AndroidManifest.xml:
<uses-permission android:name="android.permission.INTERNET" />
Hope this helps. If you found my response helpful or informative, I would greatly appreciate it if you could follow this guidance provide feedback. Thank you.