Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> 安卓 文件下載,安卓

安卓 文件下載,安卓

編輯:關於android開發

安卓 文件下載,安卓


文件下載主要代碼也不多,使用原生的DownloadManage來實現該功能:

AndroidManifest中添加權限

<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 網絡訪問權限是必須的,下載地址為sdcard的話需要添加sdcard寫權限。  

 // 測試文件下載地址(格式為http://..../文件名.文件類型)

String url = "http://soft3.xzstatic.com//1210/BatchDoc_DownZa.Cn.rar";  

// 實例化requset對象

DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url));

// 設置在什麼網絡情況下進行下載(默認為任意網絡)

// request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_MOBILE);

// 設置通知欄標題(手機系統不同,有些可能不顯示;這裡設置的是下載完成後仍然顯示,還有完成後就不顯示的等)

request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);

// 設置下載時通知顯示的標題

request.setTitle(getFileName(url));

// 設置下載時通知顯示的提示

request.setDescription("正在下載");

// 用於設置漫游狀態下是否可以下載

request.setAllowedOverRoaming(false);

// 設置文件存放目錄(前一個為文件保存路徑,可自定義;後一個為保存後的文件名及類型)

request.setDestinationInExternalPublicDir("/" + ConfigUtil.ROOT_FILE + "/download/", getFileName(url));

// 獲取系統通知服務

downManager = (DownloadManager)getSystemService(Context.DOWNLOAD_SERVICE);

// 獲取每一條通知的id(唯一)

id = downManager.enqueue(request);

DownLoadCompleteReceiver receiver = new DownLoadCompleteReceiver();

// 注冊下載完成/未完成的廣播

LeaderDetailActivity.this.registerReceiver(receiver, new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE));

LeaderDetailActivity.this.registerReceiver(receiver, new IntentFilter(DownloadManager.ACTION_NOTIFICATION_CLICKED));

 

// 廣播響應事件

private class DownLoadCompleteReceiver extends BroadcastReceiver {

    @Override
public void onReceive(Context context, Intent intent) {
if(intent.getAction().equals(DownloadManager.ACTION_DOWNLOAD_COMPLETE)){
// 下載成功操作
}else if(intent.getAction().equals(DownloadManager.ACTION_NOTIFICATION_CLICKED)){
downManager.remove(id);
// 下載取消(在未完成時點擊通知觸發)
}
}
}

// 獲取文件名與類型
public String getFileName(String pathandname){

// 獲取鏈接中最後一個/的下標
int start = pathandname.lastIndexOf("/");
int end = pathandname.lastIndexOf(".");
if(start != -1 && end != -1){
return pathandname.substring(start+1,pathandname.length()); //截取獲得:文件名.文件類型
}else{
return null;
}
}

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved