[Xamarin] Android 透過 DownloadManager 下載檔案
2015-11-30
透過系統內建的 DownloadManager 來下載檔案 ,這樣不但可以下載檔案,還可以透過系統內建就幫助做到續傳的效果,而寫APP 離開後系統依然會繼續下載,因為很方便,所以特地介紹一下
C# Code :
using System;using Android.App;using Android.OS;using Android.Util;using Android.Widget;using Java.IO;using Environment = Android.OS.Environment;using Uri = Android.Net.Uri;namespace SampleDownloadManager{[Activity(Label = "SampleDownloadManager", MainLauncher = true, Icon = "@drawable/icon")]
public class MainActivity : Activity
{ private DownloadManager DownloadManager1;protected override void OnCreate(Bundle bundle)
{ base.OnCreate(bundle); // Set our view from the "main" layout resourceSetContentView(Resource.Layout.Main);
// Get our button from the layout resource, // and attach an event to itButton btnDownload = FindViewById<Button>(Resource.Id.btnDownload);
btnDownload.Click += delegate { try { //Init DownloadManagerDownloadManager1 = (DownloadManager)GetSystemService(DownloadService);
//製作下載請求DownloadManager.Request request =
new DownloadManager.Request( Uri.Parse("http://s.nownews.com/media_crop/91002/hash/dd/49/dd49f467ebd588a31c56c1dfa7d49d06.jpg")); //可以透過wifi and mobilerequest.SetAllowedNetworkTypes(DownloadNetwork.Mobile | DownloadNetwork.Wifi);
request.SetAllowedOverRoaming(false); request.SetTitle("資料下載中"); request.SetDescription("請不要中斷,等候下載"); //存檔的目錄 預設我將放置到系統預設的下載var dirPath =
new File(Environment.GetExternalStoragePublicDirectory(
Environment.DirectoryDownloads) + "/SampleX/"); if (!dirPath.Exists())dirPath.Mkdirs();
//存檔的實體路徑var uriTarget = Uri.FromFile(new File(dirPath.AbsolutePath + "/hebe.jpg"));
request.SetDestinationUri(uriTarget);
DownloadManager1.Enqueue(request);
}
catch (Exception ex) { //Log ErrorLog.Error("SampleDownloadManager", ex.Message + "," + ex.StackTrace);
}
};
}
}
}
很簡單的Code 筆記一下.
