/*public static long CurrentDownloading * { * get * { * Android.App.DownloadManager downloadManager = (Android.App.DownloadManager)Application.Context.GetSystemService("download"); * * Android.App.DownloadManager.Query query = new Android.App.DownloadManager.Query(); * //query.SetFilterById(_downloadReference); * //query.SetFilterByStatus(DownloadStatus.Pending | DownloadStatus.Running | DownloadStatus.Paused | DownloadStatus.Successful); * * ICursor cursor = downloadManager.InvokeQuery(query); * * long num = 0; * * while (cursor.MoveToNext()) * { * num++; * } * * return num; * } * }*/ public static void RequestDownload(Uri uri, IDownloadUpdated2 notify) { if (MBDownloadManager.DefaultManager == null) { MBDownloadManager.DefaultManager = new MBDownloadManager(); } MBDownloadManager.DefaultManager.AddDownload(uri, notify); }
public static long RequestDownload(Uri uri, string filename, string title, IDownloadUpdated2 notify) { if (MBDownloadManager2.DefaultManager == null) { MBDownloadManager2.DefaultManager = new MBDownloadManager2(); } return(MBDownloadManager2.DefaultManager.AddDownload(uri, filename, title, notify)); }
public void AddDownload(Uri uri, IDownloadUpdated2 notify) { object obj2 = MBDownloadManager.requestQueue; lock (obj2) { if (MBDownloadManager.pendingRequests.ContainsKey(uri)) { return; } } MBDownloadManager.QueueRequest(uri, notify); return; }
public static void UpdateNotify(Uri uri, IDownloadUpdated2 notify) { if (pendingRequests.ContainsKey(uri)) { //Uri down = d.First() as Uri; object obj = MBDownloadManager.requestQueue; lock (obj) { List <IDownloadUpdated2> list = new List <IDownloadUpdated2>(4); /*list.Add(notify); * pendingRequests[uri] = list;*/ list = pendingRequests[uri]; list.Add(notify); } } }
static void QueueRequest(Uri uri, IDownloadUpdated2 notify) { if (notify == null) { throw new ArgumentNullException("notify"); } object obj = MBDownloadManager.requestQueue; lock (obj) { if (MBDownloadManager.pendingRequests.ContainsKey(uri)) { MBDownloadManager.pendingRequests[uri].Add(notify); } else { List <IDownloadUpdated2> list = new List <IDownloadUpdated2>(4); list.Add(notify); MBDownloadManager.pendingRequests[uri] = list; if (MBDownloadManager.fileUriers >= MaxRequests) { MBDownloadManager.requestQueue.Push(uri); } else { Interlocked.Increment(ref MBDownloadManager.fileUriers); ThreadPool.QueueUserWorkItem(delegate { try { MBDownloadManager.StartFileDownload(uri); } catch (Exception value) { Console.WriteLine(value); } }); } } } }
static long Download(Uri uri, string filename, string title, IDownloadUpdated2 notify) { Android.App.DownloadManager downloadManager = (Android.App.DownloadManager)Application.Context.GetSystemService("download"); Android.App.DownloadManager.Request request = new Android.App.DownloadManager.Request(Android.Net.Uri.Parse(uri.AbsoluteUri)); //Restrict the types of networks over which this download may proceed. request.SetAllowedNetworkTypes(Android.App.DownloadNetwork.Wifi | Android.App.DownloadNetwork.Mobile); //Set whether this download may proceed over a roaming connection. request.SetAllowedOverRoaming(false); //Set the title of this download, to be displayed in notifications (if enabled). request.SetTitle(title); request.SetVisibleInDownloadsUi(false); //request.SetNotificationVisibility(DownloadVisibility.Hidden); #if DEBUG request.SetNotificationVisibility(DownloadVisibility.Visible); #else request.SetNotificationVisibility(DownloadVisibility.Hidden); #endif request.SetDestinationInExternalFilesDir(Application.Context, Android.OS.Environment.DirectoryDownloads, filename); //Enqueue a new download and same the referenceId var id = downloadManager.Enqueue(request); ThreadPool.QueueUserWorkItem(state => { MBDownloadManager2.DownloadMonitor(id); }); /*new Thread(() => * { * MBDownloadManager2.DownloadMonitor(id); * * }).Start();*/ return(id); }
public long AddDownload(Uri uri, string filename, string title, IDownloadUpdated2 notify) { long id = 0; object obj2 = MBDownloadManager2.requestQueue; lock (obj2) { if (MBDownloadManager2.pendingRequests.ContainsKey(uri)) { return(0); } } if (notify == null) { throw new ArgumentNullException("notify"); } object obj = MBDownloadManager2.requestQueue; lock (obj) { if (MBDownloadManager2.pendingRequests.ContainsKey(uri)) { MBDownloadManager2.pendingRequests[uri].Add(notify); } else { List <IDownloadUpdated2> list = new List <IDownloadUpdated2>(4); list.Add(notify); MBDownloadManager2.pendingRequests[uri] = list; id = MBDownloadManager2.Download(uri, filename, title, notify); } } return(id); }