線上服務(wù)咨詢
Article/文章
記錄成長點(diǎn)滴 分享您我感悟
您當(dāng)前位置>首頁 > 知識 > 網(wǎng)站建設(shè)
在Android
發(fā)表時間:2019-07-30 16:20:59
文章來源:沈陽軟件開發(fā)
標(biāo)簽:網(wǎng)站建設(shè) 小程序開發(fā) 小程序制作 微信小程序開發(fā) 公眾號開發(fā) 微信公眾號開發(fā) 網(wǎng)頁設(shè)計(jì) 網(wǎng)站優(yōu)化 網(wǎng)站排名 網(wǎng)站設(shè)計(jì) 微信小程序設(shè)計(jì) 小程序定制 微信小程序定制
瀏覽次數(shù):0
中使用DownLoadManager DownloadManager主要用于長時間的http下載,是一種系統(tǒng)后臺服務(wù)。如果連接錯誤,您可以重新連接。如果重新啟動,則可以繼續(xù)連接。
1.獲取DownloadManager
DownloadManagerdm=(DownloadManager)getSystemService(DOWNLOAD_SERVICE)。
2.獲取連接請求對象
DownloadManager.Request down=new DownloadManager.Request(Uri.parse('http://10.0.11.210: 8080/test/my song.mp3'));
3.設(shè)置參數(shù)(通用)并開始下載請求
//設(shè)置允許的網(wǎng)絡(luò)類型,移動網(wǎng)絡(luò)和wifi可以down.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_MOBILE | DownloadManager.Request.NETWORK_WIFI);
//顯示在下載界面中,即下載的文件在下載管理中顯示down.setVisibleInDownloadsUi(true);
//設(shè)置下載后文件的位置,如果未設(shè)置將存在data/data/com.android.provider.downloads/cache/below,在Android/data /<上設(shè)置sd后包名>/files /下面。第二個參數(shù)是文件下目錄的目錄名稱。第三個參數(shù)是文件名。如果第三個參數(shù)有路徑,請確保路徑存在。隨便寫入第二個參數(shù)路徑。您將創(chuàng)建down.setDestinationInExternalFilesDir(mContext)。Environment.DIRECTORY_MUSIC,'My songs.mp3');
//在通知欄中顯示下載詳細(xì)信息,例如百分比。 down.setShowRunningNotification(true)(API 9); //默認(rèn)為true,更改為false需要權(quán)限android.permission.DOWNLOAD_WITHOUT_NOTIFICATION。
此方法由setNotificationVisibility(int visibility)(API 11)替換。
//SD卡路徑是根路徑,上述方法中只有一個有效。創(chuàng)建文件夾的第一個參數(shù)是mkdir down.setDestinationInExternalPublicDir(Environment.DIRECTORY_MUSIC,'My songs.mp3');
//將下載請求放入隊(duì)列manager.enqueue(down);
//下載完成后保留下載的通知。文檔中的參數(shù)表明需要API 12或更高版本。 4.0手機(jī)啟動。
[java]查看plaincopy%20
down.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);%20
4.接收下載完成信息
廣播接收下載完成信息,Action為DownloadManager.ACTION_DOWNLOAD_COMPLETE。%20
可下載的文件存儲在數(shù)據(jù)庫ID中:long%20downId=intent.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID,-1);%20
getUriForDownloadedFile(long%20id)可以獲取文件存儲的URI。%20
您還可以使用新的DownloadManager.Query然后使用SetFilterById(long%20.%20ids)獲取Cursor對象,然后使用DownloadManager的查詢(DownloadManager.Query查詢)
5.remove(long%20.%20ids)
取消正在下載的任務(wù)或刪除部分或全部下載的文件并刪除相應(yīng)的數(shù)據(jù)記錄。%20
6.如何獲得身份
您可以收聽數(shù)據(jù)庫文件/data/data/com.android.provider.downloads/database/downloads.db。數(shù)據(jù)庫有一個特殊的監(jiān)聽器類。您還可以使用文件偵聽器類FileObsever來監(jiān)視文件更改。%20
獲取已更改的數(shù)據(jù)行。下載后不會插入數(shù)據(jù)庫中的數(shù)據(jù),但每次更改時通知欄的百分比都會更新。%20
還獲得下載百分比。數(shù)據(jù)庫中有個字段。 Current_bytes是當(dāng)前下載的位數(shù),在等于total_bytes之前更新。
7.單擊正在下載的通知將受到廣播的影響,其中Action為DownloadManager.ACTION_NOTIFICATION_CLICKED。
下載示例代碼:
[java]查看plaincopy%20
privatevoidbegainDownload(){
DownloadManagerdm=(下載管理器)getSystemService(DOWNLOAD_SERVICE);%20
DownloadManager.Requestdown=newDownloadManager.Request(Uri.parse('http://10.0.11.210:%208080/test/my%20songs.mp3'));%20
down.setVisibleInDownloadsUi(真);%20
down.setDestinationInExternalFilesDir(this,Environment.DIRECTORY_MUSIC,'My%20songs.mp3');%20
down.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);%20
Dm.enqueue(下);%20
}%20
tomcat服務(wù)器提供資源。該文件存在/sdcard/Android/data%20/<%20package%20name>/files/Music/my%20song.mp3%20
權(quán)限:
[html]查看plaincopy
網(wǎng)站建設(shè),小程序開發(fā),小程序制作,微信小程序開發(fā),公眾號開發(fā),微信公眾號開發(fā),網(wǎng)頁設(shè)計(jì),網(wǎng)站優(yōu)化,網(wǎng)站排名,網(wǎng)站設(shè)計(jì),微信小程序設(shè)計(jì),小程序定制,微信小程序定制