線上服務咨詢
Article/文章
記錄成長點滴 分享您我感悟
在Android
發表時間:2019-07-30 16:20:59
文章來源:沈陽軟件開發
標簽:網站建設 小程序開發 小程序制作 微信小程序開發 公眾號開發 微信公眾號開發 網頁設計 網站優化 網站排名 網站設計 微信小程序設計 小程序定制 微信小程序定制
瀏覽次數:0
中使用DownLoadManager DownloadManager主要用于長時間的http下載,是一種系統后臺服務。如果連接錯誤,您可以重新連接。如果重新啟動,則可以繼續連接。
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.設置參數(通用)并開始下載請求
//設置允許的網絡類型,移動網絡和wifi可以down.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_MOBILE | DownloadManager.Request.NETWORK_WIFI);
//顯示在下載界面中,即下載的文件在下載管理中顯示down.setVisibleInDownloadsUi(true);
//設置下載后文件的位置,如果未設置將存在data/data/com.android.provider.downloads/cache/below,在Android/data /<上設置sd后包名>/files /下面。第二個參數是文件下目錄的目錄名稱。第三個參數是文件名。如果第三個參數有路徑,請確保路徑存在。隨便寫入第二個參數路徑。您將創建down.setDestinationInExternalFilesDir(mContext)。Environment.DIRECTORY_MUSIC,'My songs.mp3');
//在通知欄中顯示下載詳細信息,例如百分比。 down.setShowRunningNotification(true)(API 9); //默認為true,更改為false需要權限android.permission.DOWNLOAD_WITHOUT_NOTIFICATION。
此方法由setNotificationVisibility(int visibility)(API 11)替換。
//SD卡路徑是根路徑,上述方法中只有一個有效。創建文件夾的第一個參數是mkdir down.setDestinationInExternalPublicDir(Environment.DIRECTORY_MUSIC,'My songs.mp3');
//將下載請求放入隊列manager.enqueue(down);
//下載完成后保留下載的通知。文檔中的參數表明需要API 12或更高版本。 4.0手機啟動。
[java]查看plaincopy%20
down.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);%20
4.接收下載完成信息
廣播接收下載完成信息,Action為DownloadManager.ACTION_DOWNLOAD_COMPLETE。%20
可下載的文件存儲在數據庫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)
取消正在下載的任務或刪除部分或全部下載的文件并刪除相應的數據記錄。%20
6.如何獲得身份
您可以收聽數據庫文件/data/data/com.android.provider.downloads/database/downloads.db。數據庫有一個特殊的監聽器類。您還可以使用文件偵聽器類FileObsever來監視文件更改。%20
獲取已更改的數據行。下載后不會插入數據庫中的數據,但每次更改時通知欄的百分比都會更新。%20
還獲得下載百分比。數據庫中有個字段。 Current_bytes是當前下載的位數,在等于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服務器提供資源。該文件存在/sdcard/Android/data%20/<%20package%20name>/files/Music/my%20song.mp3%20
權限:
[html]查看plaincopy
網站建設,小程序開發,小程序制作,微信小程序開發,公眾號開發,微信公眾號開發,網頁設計,網站優化,網站排名,網站設計,微信小程序設計,小程序定制,微信小程序定制