package Ġk ib aan . android . util Ċ Ċ import Ġandroid . app . Download Manager Ċ import Ġandroid . app . Download Manager . Request . VIS IBILITY _ VISIBLE Ċ import Ġandroid . content . Broadcast Receiver Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Context . DOWNLOAD _ SERVICE Ċ import Ġandroid . content . Intent Ċ import Ġandroid . net . Uri Ċ Ċ internal Ġclass ĠFile Downloader Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġdownload Id : ĠLong Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar Ġlistener : ĠFile Downloader . Listener ? Ġ= Ġnull ĊĊĠĠĠ Ġfun Ġstart ( context : ĠContext , Ġurl String : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġ éĢļä¿¡ ä¸įåı¯ ãģ® åł´åĲĪãģ¯ ãģĻ ãģ Ĳ ãģ« å¤± æķ Ĺ éĢļçŁ¥ ãģĻãĤĭ ĊĠĠĠĠĠĠĠ Ġif Ġ(! OS Utils . is Network Enabled ( context )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlistener ?. on Failed ( url String ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠ Ġhttp :// y - anz - m . blogspot . jp / 2 0 1 0 / 1 2 / android android 2 3 - download manager . html ĊĠĠĠĠĠĠĠ Ġval Ġdownload Manager Ġ= Ġcontext . getSystem Service ( DOWNLOAD _ SERVICE ) Ġas ĠDownload Manager ĊĠĠĠĠĠĠĠ Ġval Ġrequest : ĠDownload Manager . Request ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Ġ= ĠDownload Manager . Request ( Uri . parse ( url String )) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIllegalArgumentException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlistener ?. on Failed ( url String ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġrequest . set Allowed Network Types ( Download Manager . Request . NETWORK _ WIFI Ġor ĠDownload Manager . Request . NETWORK _ MOB ILE ) ĊĠĠĠĠĠĠĠ Ġ// Ġ éĢļçŁ¥ éł ĺ åŁŁ ãģĭãĤī è¦ĭ ãģĪãĤĭ ãģĭ ãģ© ãģĨ ãģĭ ĊĠĠĠĠĠĠĠ Ġrequest . set Notification Visibility ( VIS IBILITY _ VISIBLE ) ĊĠĠĠĠĠĠĠ Ġ// Ġãĥ Ģ ãĤ¦ ãĥ³ ãĥŃ ãĥ¼ãĥī ãĤ¢ãĥĹãĥª ãģĭãĤī è¦ĭ ãģĪãĤĭ ãģĭ ãģ© ãģĨ ãģĭ ĊĠĠĠĠĠĠĠ Ġrequest . setVisible In Downloads Ui ( false ) ĊĠĠĠĠĠĠĠ Ġdownload Id Ġ= Ġdownload Manager . enqueue ( request ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġstop ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( download Id Ġ== Ġ 0 L ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġdownload Manager Ġ= Ġcontext . getSystem Service ( DOWNLOAD _ SERVICE ) Ġas ĠDownload Manager ĊĠĠĠĠĠĠĠ Ġdownload Manager . remove ( download Id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġmake Receiver (): ĠBroadcast Receiver Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠ Ġhttp :// blog . vo ge lla . com / 2 0 1 1 / 0 6 / 1 4 / android - download manager - example / ĊĠĠĠĠĠĠĠ Ġreturn Ġobject Ġ: ĠBroadcast Receiver () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Receive ( context : ĠContext , Ġintent : ĠIntent ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaction Ġ= Ġintent . action ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Download Manager . ACTION _ DOWNLOAD _ COMPLETE Ġ== Ġaction ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdownload Id Ġ= Ġintent . getLong Extra ( Download Manager . EXTRA _ DOWNLOAD _ ID , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( download Id Ġ!= Ġthis @ File Downloader . download Id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdownload Manager Ġ= Ġcontext . getSystem Service ( DOWNLOAD _ SERVICE ) Ġas ĠDownload Manager ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġquery Ġ= ĠDownload Manager . Query () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquery . set Filter ById ( download Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcursor Ġ= Ġdownload Manager . query ( query ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( cursor . moveTo First ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġindex For Status Ġ= Ġcursor . getColumnIndex ( Download Manager . COLUMN _ STATUS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstatus Ġ= Ġcursor . getInt ( index For Status ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Download Manager . STATUS _ SUCCESS FUL Ġ== Ġstatus ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġindex For Saved URI Ġ= Ġcursor . getColumnIndex ( Download Manager . COLUMN _ LOCAL _ URI ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġuri String Ġ= Ġcursor . getString ( index For Saved URI ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlistener ?. on Downloaded ( Uri . parse ( uri String )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis @ File Downloader . download Id Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( Download Manager . STATUS _ FAILED Ġ== Ġstatus ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġindex For Saved URI Ġ= Ġcursor . getColumnIndex ( Download Manager . COLUMN _ LOCAL _ URI ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġuri String Ġ= Ġcursor . getString ( index For Saved URI ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlistener ?. on Failed ( url String Ġ= Ġuri String ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcursor . close () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Listener ( listener : ĠFile Downloader . Listener ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . listener Ġ= Ġlistener ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġinternal Ġinterface ĠListener Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon Downloaded ( uri : ĠUri ) ĊĠĠĠĠĠĠĠ Ġfun Ġon Failed ( url String : ĠString ) ĊĠĠĠ Ġ} Ċ } Ċ