@SuppressLint("NewApi") public void download(VersionInfo version) { initDownload(); AppLog.out(TAG, "更新地址:" + HttpUrl.OSS + version.getSourceUrl(), AppLog.LEVEL_INFO); DownloadManager.Request request = new DownloadManager.Request(Uri.parse(HttpUrl.OSS + version.getSourceUrl())); request.setDestinationInExternalPublicDir(DOWNLOAD_FOLDER_NAME, version.getVersionName()); request.setTitle(version.getVersionName()); request.setDescription(getString(R.string.app_name)); request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED); request.setVisibleInDownloadsUi(false); // request.setMimeType(MMIMETYPE); downloadId = downloadManager.enqueue(request); /** save download id to preferences * */ PreferencesUtils.putLong(getBaseContext(), KEY_NAME_DOWNLOAD_ID, downloadId); // finish(); }
public void initDownload() { /** * get download id from preferences.<br> * if download id bigger than 0, means it has been downloaded, then query status and show right * text; */ downloadManager = (DownloadManager) getSystemService(DOWNLOAD_SERVICE); downloadManagerPro = new DownloadManagerPro(downloadManager); downloadId = PreferencesUtils.getLong(getBaseContext(), KEY_NAME_DOWNLOAD_ID); completeReceiver = new CompleteReceiver(); /** register download success broadcast * */ registerReceiver(completeReceiver, new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE)); initDownloaderDir(); }