Java Code Examples for android.app.DownloadManager#enqueue()
The following examples show how to use
android.app.DownloadManager#enqueue() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: MoodleCourseDetailsFragment.java From ETSMobile-Android2 with Apache License 2.0 | 6 votes |
/** * Downloads an given Moodle item into the user's device. * @param item the item to be downloaded. */ @NeedsPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) void downloadMoodleObject(MoodleModuleContent item) { String url = item.getFileurl() + "&token=" + ApplicationManager.userCredentials.getMoodleToken(); Uri uri = Uri.parse(url); DownloadManager.Request request = new DownloadManager.Request(uri); request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, item.getFilename()); request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED); MimeTypeMap mimetype = MimeTypeMap.getSingleton(); String extension = FilenameUtils.getExtension(item.getFilename()); request.setMimeType(mimetype.getMimeTypeFromExtension(extension)); dm = (DownloadManager) getActivity().getSystemService(Context.DOWNLOAD_SERVICE); enqueue = dm.enqueue(request); }
Example 2
Source File: WebViewActivity.java From mattermost-android-classic with Apache License 2.0 | 6 votes |
private DownloadListener getDownloadListener() { return new DownloadListener() { public void onDownloadStart( String url, String userAgent, String contentDisposition, String mimetype, long contentLength ) { Uri uri = Uri.parse(url); Request request = new Request(uri); request.allowScanningByMediaScanner(); request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED); request.setTitle("File download from Mattermost"); String cookie = CookieManager.getInstance().getCookie(url); if (cookie != null) { request.addRequestHeader("cookie", cookie); } DownloadManager dm = (DownloadManager) getSystemService(DOWNLOAD_SERVICE); dm.enqueue(request); } }; }
Example 3
Source File: ImageViewerActivity.java From scallop with MIT License | 6 votes |
@OnClick(R.id.download_button) public void downloadImage() { String imageUrl = imageUrlList.get(imageViewPager.getCurrentItem()); String fileName = StringUtils.getImageNameFromUrl(imageUrl); String path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES) .getAbsolutePath() + "/scallop"; DownloadManager downloadManager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE); DownloadManager.Request request = new DownloadManager.Request(Uri.parse(imageUrl)); request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI | DownloadManager.Request.NETWORK_MOBILE) .setAllowedOverRoaming(false) .setTitle(fileName) .setNotificationVisibility( DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED) .setDestinationInExternalPublicDir(path, fileName); downloadManager.enqueue(request); }
Example 4
Source File: FileDisplayActivity.java From TBSFileBrowsing with Apache License 2.0 | 6 votes |
/** * 下载文件 */ @SuppressLint("NewApi") private void startDownload() { mDownloadObserver = new DownloadObserver(new Handler()); getContentResolver().registerContentObserver( Uri.parse("content://downloads/my_downloads"), true, mDownloadObserver); mDownloadManager = (DownloadManager) getSystemService(DOWNLOAD_SERVICE); //将含有中文的url进行encode String fileUrl = toUtf8String(mFileUrl); try { DownloadManager.Request request = new DownloadManager.Request( Uri.parse(fileUrl)); request.setDestinationInExternalPublicDir( Environment.DIRECTORY_DOWNLOADS, mFileName); request.allowScanningByMediaScanner(); request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_HIDDEN); mRequestId = mDownloadManager.enqueue(request); } catch (Exception e) { e.printStackTrace(); } }
Example 5
Source File: UtilsLibrary.java From MTweaks-KernelAdiutorMOD with GNU General Public License v3.0 | 6 votes |
private static void descargar(Context context, URL url) { downloadManager = (DownloadManager)context.getSystemService(DOWNLOAD_SERVICE); DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url.toString())); String APK = new File(url.getPath()).getName(); request.setTitle(APK); request.setNotificationVisibility(VISIBILITY_VISIBLE_NOTIFY_COMPLETED); // Guardar archivo if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) { request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS,APK); } // Iniciamos la descarga Utils.toast(context.getString(R.string.appupdater_downloading_file) + " " + APK + " ...", context, LENGTH_LONG); id = downloadManager.enqueue(request); }
Example 6
Source File: UpdateService.java From Ency with Apache License 2.0 | 6 votes |
private void startDownload() { File file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), "ency.apk"); AppFileUtil.delFile(file, true); // 创建下载任务 DownloadManager.Request request = new DownloadManager.Request(Uri.parse(downloadUrl)); // 显示下载信息 request.setTitle("Ency"); request.setDescription("新版本下载中"); request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE); request.setMimeType("application/vnd.android.package-archive"); // 设置下载路径 request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "ency.apk"); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { request.allowScanningByMediaScanner(); request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED); } // 获取DownloadManager dm = (DownloadManager) getSystemService(DOWNLOAD_SERVICE); // 将下载请求加入下载队列,加入下载队列后会给该任务返回一个long型的id,通过该id可以取消任务,重启任务、获取下载的文件等等 downloadId = dm.enqueue(request); Toast.makeText(this, "后台下载中,请稍候...", Toast.LENGTH_SHORT).show(); }
Example 7
Source File: PlayerActivity2.java From YTPlayer with GNU General Public License v3.0 | 5 votes |
private void downloadNormal(String fileName, YTConfig config) { Uri uri = Uri.parse(config.getUrl()); DownloadManager.Request request = new DownloadManager.Request(uri); request.setTitle(config.getTitle()+" - "+config.getChannelTitle()); request.allowScanningByMediaScanner(); request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED); request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, fileName); DownloadManager manager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE); manager.enqueue(request); }
Example 8
Source File: Downloader.java From OpenHub with GNU General Public License v3.0 | 5 votes |
private void start() { DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url)); //移动网络情况下是否允许漫游 request.setAllowedOverRoaming(false); request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED); String title = mContext.getString(R.string.downloading); if(fileName.contains("/")){ title = title.concat(" ").concat(fileName.substring(fileName.lastIndexOf("/") + 1)); }else{ title = title.concat(" ").concat(fileName); } request.setTitle(title); // request.setDescription("Apk Downloading"); request.setVisibleInDownloadsUi(true); request.setDestinationInExternalPublicDir("Download", fileName); downloadManager = (DownloadManager) mContext.getSystemService(Context.DOWNLOAD_SERVICE); downloadId = downloadManager.enqueue(request); mContext.registerReceiver(receiver, new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE)); Toasty.success(mContext, mContext.getString(R.string.download_start)).show(); }
Example 9
Source File: BrowserUnit.java From Ninja with Apache License 2.0 | 5 votes |
public static void download(Context context, String url, String contentDisposition, String mimeType) { DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url)); String filename = URLUtil.guessFileName(url, contentDisposition, mimeType); // Maybe unexpected filename. request.allowScanningByMediaScanner(); request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED); request.setTitle(filename); request.setMimeType(mimeType); request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, filename); DownloadManager manager = (DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE); manager.enqueue(request); NinjaToast.show(context, R.string.toast_start_download); }
Example 10
Source File: DownloadFile.java From Android with MIT License | 5 votes |
private void downloading() { if(isStoragePermissionGranted()){ DownloadManager mgr = (DownloadManager) mContext.getSystemService(Context.DOWNLOAD_SERVICE); Uri uri = Uri.parse(url); DownloadManager.Request req=new DownloadManager.Request(uri); req.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI | DownloadManager.Request.NETWORK_MOBILE) .setAllowedOverRoaming(false) .setTitle(title) .setDescription("downloading...") .setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS,title); mgr.enqueue(req); } }
Example 11
Source File: ThreadViewFragment.java From something.apk with MIT License | 5 votes |
public void enqueueDownload(String targetUrl) { Uri image = Uri.parse(targetUrl); DownloadManager.Request request = new DownloadManager.Request(image); request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED); request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, image.getLastPathSegment()); request.allowScanningByMediaScanner(); DownloadManager dlMngr = (DownloadManager) getActivity().getSystemService(Context.DOWNLOAD_SERVICE); dlMngr.enqueue(request); Toast.makeText(getActivity(), "Image saved to Downloads folder.", Toast.LENGTH_LONG).show(); }
Example 12
Source File: NetworkHelper.java From Ouroboros with GNU General Public License v3.0 | 5 votes |
public void downloadFile(String boardName, String tim, String ext, Context context){ Uri uri = Uri.parse(ChanUrls.getImageUrl(boardName, tim, ext)); DownloadManager.Request request = new DownloadManager.Request(uri); request.setDescription(tim + ext); request.setTitle(tim + ext); request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS + "/Ouroboros", tim + ext); DownloadManager manager = (DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE); manager.enqueue(request); }
Example 13
Source File: DownLoadApkService.java From xifan with Apache License 2.0 | 5 votes |
private void downLoadApk(String url) { if (mEnqueue == 0) { mDownloadManager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE); DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url)); request.setTitle(getString(R.string.app_name)); request.setDescription(getString(R.string.text_downloading)); request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, APK_NAME); request.setVisibleInDownloadsUi(true); mEnqueue = mDownloadManager.enqueue(request); } }
Example 14
Source File: GraphicActivity.java From BotLibre with Eclipse Public License 1.0 | 5 votes |
public void downloadFile(View v){ if(gInstance.fileName.equals("")){ MainActivity.showMessage("Missing file!", this); return; } String url=MainActivity.WEBSITE +"/"+ gInstance.media; try{ DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url)); request.setTitle(gInstance.fileName); request.setDescription(MainActivity.WEBSITE); // request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI); only download thro wifi. request.allowScanningByMediaScanner(); request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED); Toast.makeText(GraphicActivity.this, "Downloading " + gInstance.fileName, Toast.LENGTH_SHORT).show(); request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, gInstance.fileName); DownloadManager manager = (DownloadManager) this.getSystemService(Context.DOWNLOAD_SERVICE); BroadcastReceiver onComplete=new BroadcastReceiver() { public void onReceive(Context ctxt, Intent intent) { Toast.makeText(GraphicActivity.this, gInstance.fileName+" Downloaded!", Toast.LENGTH_SHORT).show(); } }; manager.enqueue(request); registerReceiver(onComplete, new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE)); }catch(Exception e){ MainActivity.showMessage(e.getMessage(), this); } }
Example 15
Source File: DownloadNewVersionJob.java From WayHoo with Apache License 2.0 | 4 votes |
@Override public Void run(JobContext jc) { try { if (checkDownloadRunning()) return null; if (checkApkExist()) { Intent installApkIntent = new Intent(); installApkIntent.setAction(Intent.ACTION_VIEW); installApkIntent.setDataAndType( Uri.parse(Preferences.getDownloadPath(mContext)), "application/vnd.android.package-archive"); installApkIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS); mContext.startActivity(installApkIntent); } else { String apkName = mContext.getPackageName() + System.currentTimeMillis() + Constants.APK_SUFFIX; // 系统下载程序 final DownloadManager downloadManager = (DownloadManager) mContext .getSystemService(mContext.DOWNLOAD_SERVICE); Long recommendedMaxBytes = DownloadManager .getRecommendedMaxBytesOverMobile(mContext); // 可以在移动网络下下载 if (recommendedMaxBytes == null || recommendedMaxBytes.longValue() > MAX_ALLOWED_DOWNLOAD_BYTES_BY_MOBILE) { allowMobileDownload = true; } Uri uri = Uri.parse(mUpgradeInfo.getUrl()); final Request request = new Request(uri); request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED); request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED); int NETWORK_TYPE = DownloadManager.Request.NETWORK_WIFI; if (allowMobileDownload) { NETWORK_TYPE |= DownloadManager.Request.NETWORK_MOBILE; } request.setAllowedNetworkTypes(NETWORK_TYPE); request.allowScanningByMediaScanner(); request.setShowRunningNotification(true); request.setVisibleInDownloadsUi(true); request.setDestinationInExternalPublicDir( Environment.DIRECTORY_DOWNLOADS, apkName); PackageManager packageManager = mContext.getPackageManager(); ApplicationInfo applicationInfo = packageManager .getApplicationInfo(mContext.getPackageName(), 0); Log.i("liweiping", "appName = " + packageManager .getApplicationLabel(applicationInfo)); request.setTitle(packageManager .getApplicationLabel(applicationInfo)); request.setMimeType("application/vnd.android.package-archive"); // id 保存起来跟之后的广播接收器作对比 long id = downloadManager.enqueue(request); long oldId = Preferences.getDownloadId(mContext); if (oldId != -1) { downloadManager.remove(oldId); } Preferences.removeAll(mContext); Preferences.setDownloadId(mContext, id); Preferences.setUpgradeInfo(mContext, mUpgradeInfo); Preferences.setDownloadStatus(mContext, Constants.DOWNLOAD_STATUS_RUNNING); } } catch (Exception e) { e.printStackTrace(); } return null; }
Example 16
Source File: DownloadMangerUtils.java From MissZzzReader with Apache License 2.0 | 4 votes |
/** * 文件下载 * * @param context * @param fileDir * @param url * @param fileName */ public static void downloadFile(Context context, String fileDir, String url, String fileName) { try { Log.d("http download:", url); //String Url = "10.10.123.16:8080/gxqdw_ubap/mEmailController.thumb?getAttachmentStream&fileId=1&fileName=自我探索——我是谁.ppt&emailId=36&token=d1828248-cc71-4719-8218-adc31ffc9cca&type=inbox&fileSize=14696446"; DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url)); // DownloadManager.Request.setDestinationInExternalPublicDir(); request.setDescription(fileName); request.setTitle("附件"); // in order for this if to run, you must use the android 3.2 to compile your app if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { request.allowScanningByMediaScanner(); request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED); // request.setNotificationVisibility(VISIBILITY_HIDDEN); } // int i = Build.VERSION.SDK_INT; if (Build.VERSION.SDK_INT > 17) { request.setDestinationInExternalPublicDir(fileDir, fileName); } else { if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) { request.setDestinationInExternalPublicDir(fileDir, fileName); } else { Log.d("download", "android版本过低,不存在外部存储,下载路径无法指定,默认路径:/data/data/com.android.providers.downloads/cache/"); DialogCreator.createCommonDialog(context, "文件下载", "android版本过低或系统兼容性问题,不存在外部存储,无法指定下载路径,文件下载到系统默认路径,请到文件管理搜索文件名", "关闭", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }); } } // get download service and enqueue file DownloadManager manager = (DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE); manager.enqueue(request); } catch (Exception e) { e.printStackTrace(); lowVersionNoSDDownload(context, url, fileName); } }
Example 17
Source File: ApplicationManager.java From product-emm with Apache License 2.0 | 4 votes |
/** * Initiate downloading via DownloadManager API. * * @param url - File URL. * @param appName - Name of the application to be downloaded. */ private void downloadViaDownloadManager(String url, String appName) { final DownloadManager downloadManager = (DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE); Uri downloadUri = Uri .parse(url); DownloadManager.Request request = new DownloadManager.Request( downloadUri); // Restrict the types of networks over which this download may // proceed. request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI | DownloadManager.Request.NETWORK_MOBILE); // Set whether this download may proceed over a roaming connection. request.setAllowedOverRoaming(false); // Set the title of this download, to be displayed in notifications // (if enabled). request.setTitle(resources.getString(R.string.downloader_message_title)); // Set a description of this download, to be displayed in // notifications (if enabled) request.setDescription(resources.getString(R.string.downloader_message_description) + appName); // Set the local destination for the downloaded file to a path // within the application's external files directory request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, appName); // Enqueue a new download and same the referenceId downloadReference = downloadManager.enqueue(request); new Thread(new Runnable() { @Override public void run() { boolean downloading = true; int progress = 0; while (downloading) { DownloadManager.Query query = new DownloadManager.Query(); query.setFilterById(downloadReference); Cursor cursor = downloadManager.query(query); cursor.moveToFirst(); int bytesDownloaded = cursor.getInt(cursor.getColumnIndex(DownloadManager. COLUMN_BYTES_DOWNLOADED_SO_FAR)); int bytesTotal = cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_TOTAL_SIZE_BYTES)); if (cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_STATUS)) == DownloadManager. STATUS_SUCCESSFUL) { downloading = false; } int downloadProgress = (int) ((bytesDownloaded * 100l) / bytesTotal); if (downloadProgress != DOWNLOAD_PERCENTAGE_TOTAL) { progress += DOWNLOADER_INCREMENT; } else { progress = DOWNLOAD_PERCENTAGE_TOTAL; } Preference.putString(context, resources.getString(R.string.app_download_progress), String.valueOf(progress)); cursor.close(); } } }).start(); }
Example 18
Source File: BridgeUpdateService.java From Android-Bridge-App with MIT License | 4 votes |
private void updateApp() { String fileName = "bridgeapp.apk"; final String destination = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) + "/" + fileName; final Uri uri = Uri.parse("file://" + destination); //Delete update file if exists File file = new File(destination); if (file.exists()) file.delete(); //set downloadmanager DownloadManager.Request request = new DownloadManager.Request(Uri.parse(UPDATED_APP_URL)); request.setDescription("Updating BridgeApp"); request.setTitle("Update"); //set destination request.setDestinationUri(uri); // get download service and enqueue file final DownloadManager manager = (DownloadManager) getSystemService(DOWNLOAD_SERVICE); final long downloadId = manager.enqueue(request); //set BroadcastReceiver to install app when .apk is downloaded BroadcastReceiver onComplete = new BroadcastReceiver() { public void onReceive(Context ctxt, Intent intent) { if (sharedPreferences.contains(getResources().getString(R.string.preference_auto_update_key)) && sharedPreferences.getBoolean(getResources().getString(R.string.preference_auto_update_key), false)) { try { Intent afterUpdateIntent = new Intent(getApplicationContext(), BridgeActivity.class); intent.setAction(Intent.ACTION_MAIN); intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); PendingIntent pi = PendingIntent.getActivity(getApplicationContext(), 0, afterUpdateIntent, 0); final long DELAY_IN_MILLIS = 1000 * 2 + System.currentTimeMillis(); AlarmManager alarmManager = (AlarmManager) getSystemService(Activity.ALARM_SERVICE); alarmManager.set(AlarmManager.RTC, DELAY_IN_MILLIS, pi); String command; command = "pm install -r " + destination; Process proc = Runtime.getRuntime().exec(new String[]{"su", "-c", command}); proc.waitFor(); pi.send(); } catch (Exception e) { e.printStackTrace(); } } else { sharedPreferences.edit().putString(getResources().getString(R.string.preference_update_uri), uri.toString()).commit(); sharedPreferences.edit().putString(getResources().getString(R.string.preference_update_mimetype), manager.getMimeTypeForDownloadedFile(downloadId)).commit(); Intent updateAvailableIntent = new Intent(getResources().getString(R.string.intent_filter_update_available)); sendBroadcast(updateAvailableIntent); } unregisterReceiver(this); } }; //register receiver for when .apk download is compete registerReceiver(onComplete, new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE)); }
Example 19
Source File: MediaDownloaderImpl.java From Infinity-For-Reddit with GNU Affero General Public License v3.0 | 4 votes |
@Override public void download(String url, String fileName, Context ctx) { DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url)); request.setTitle(fileName); request.allowScanningByMediaScanner(); request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED); //Android Q support if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { request.setDestinationInExternalPublicDir(Environment.DIRECTORY_PICTURES, fileName); } else { String path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).toString(); File directory = new File(path + "/Infinity/"); boolean saveToInfinityFolder = true; if (!directory.exists()) { if (!directory.mkdir()) { saveToInfinityFolder = false; } } else { if (directory.isFile()) { if (!(directory.delete() && directory.mkdir())) { saveToInfinityFolder = false; } } } if (saveToInfinityFolder) { request.setDestinationInExternalPublicDir(Environment.DIRECTORY_PICTURES + "/Infinity/", fileName); } else { request.setDestinationInExternalPublicDir(Environment.DIRECTORY_PICTURES, fileName); } } DownloadManager manager = (DownloadManager) ctx.getSystemService(Context.DOWNLOAD_SERVICE); if (manager == null) { Toast.makeText(ctx, R.string.download_failed, Toast.LENGTH_SHORT).show(); return; } manager.enqueue(request); Toast.makeText(ctx, R.string.download_started, Toast.LENGTH_SHORT).show(); }
Example 20
Source File: ApplicationManager.java From product-emm with Apache License 2.0 | 4 votes |
/** * Initiate downloading via DownloadManager API. * * @param url - File URL. * @param appName - Name of the application to be downloaded. */ private void downloadViaDownloadManager(String url, String appName) { final DownloadManager downloadManager = (DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE); Uri downloadUri = Uri .parse(url); DownloadManager.Request request = new DownloadManager.Request( downloadUri); // Restrict the types of networks over which this download may // proceed. request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI | DownloadManager.Request.NETWORK_MOBILE); // Set whether this download may proceed over a roaming connection. request.setAllowedOverRoaming(true); // Set the title of this download, to be displayed in notifications // (if enabled). request.setTitle(resources.getString(R.string.downloader_message_title)); request.setVisibleInDownloadsUi(false); request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_HIDDEN); // Set the local destination for the downloaded file to a path // within the application's external files directory request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, appName); // Enqueue a new download and same the referenceId downloadReference = downloadManager.enqueue(request); new Thread(new Runnable() { @Override public void run() { boolean downloading = true; int progress = 0; while (downloading) { downloadOngoing = true; DownloadManager.Query query = new DownloadManager.Query(); query.setFilterById(downloadReference); Cursor cursor = downloadManager.query(query); cursor.moveToFirst(); int bytesDownloaded = cursor.getInt(cursor.getColumnIndex(DownloadManager. COLUMN_BYTES_DOWNLOADED_SO_FAR)); int bytesTotal = cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_TOTAL_SIZE_BYTES)); if (cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_STATUS)) == DownloadManager. STATUS_SUCCESSFUL) { downloading = false; } if (cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_STATUS)) == DownloadManager. STATUS_FAILED) { downloading = false; Preference.putString(context, context.getResources().getString( R.string.app_install_status), context.getResources().getString( R.string.app_status_value_download_failed)); Preference.putString(context, context.getResources().getString( R.string.app_install_failed_message), "App download failed due to a connection issue."); } int downloadProgress = 0; if (bytesTotal > 0) { downloadProgress = (int) ((bytesDownloaded * 100l) / bytesTotal); } if (downloadProgress != DOWNLOAD_PERCENTAGE_TOTAL) { progress += DOWNLOADER_INCREMENT; } else { progress = DOWNLOAD_PERCENTAGE_TOTAL; Preference.putString(context, context.getResources().getString( R.string.app_install_status), context.getResources().getString( R.string.app_status_value_download_completed)); } Preference.putString(context, resources.getString(R.string.app_download_progress), String.valueOf(progress)); cursor.close(); } downloadOngoing = false; } }).start(); }