DownloadManager mgr = (DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE); long id = mgr.enqueue(request); DownloadManager.Query q = new DownloadManager.Query(); q.setFilterById(id); Cursor cursor = mgr.query(q); cursor.moveToFirst(); int bytes_downloaded = cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_BYTES_DOWNLOADED_SO_FAR)); cursor.close();
private void queryStatus(View v) { Cursor c= mgr.query(new DownloadManager.Query().setFilterById(lastDownload));
@Override public void onReceive(Context context, Intent intent) { DownloadManager downloadManager = (DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE); String action = intent.getAction(); // We only want to check if the download has completed if (DownloadManager.ACTION_DOWNLOAD_COMPLETE.equals(action)) { DownloadManager.Query query = new DownloadManager.Query(); query.setFilterById(downloadId); // Check if file has been successfully downloaded Cursor c = downloadManager.query(query); if (c.moveToFirst()) { int columnIndex = c.getColumnIndex(DownloadManager.COLUMN_STATUS); int status = c.getInt(columnIndex); switch (status) { // If everything is fine, call the abstract method and proceed case DownloadManager.STATUS_SUCCESSFUL: Uri uri = Uri.parse(c.getString(c.getColumnIndex(DownloadManager.COLUMN_LOCAL_URI))); onDownloadDone(uri); break; // Otherwise tell the user that the download failed default: Toast.makeText(context, R.string.download_file_error, Toast.LENGTH_LONG); break; } context.unregisterReceiver(this); } // Close any open resources c.close(); } }
Query query = new Query(); query.setFilterById(enqueue); Cursor c = dm.query(query); if (c.moveToFirst()) { int columnIndex = c
Cursor c = dm.query( new DownloadManager.Query().setFilterById( downloadId ) );
private String getDownloadFile(long downloadId) { String fileUri = null; DownloadManager.Query query = new DownloadManager.Query().setFilterById(downloadId); Cursor c = downloadManager.query(query); if (c != null) { if (c.moveToFirst()) { fileUri = c.getString(c.getColumnIndexOrThrow(DownloadManager.COLUMN_LOCAL_URI)); if (fileUri.startsWith("content")) { String fileName = c.getString(c.getColumnIndexOrThrow(DownloadManager.COLUMN_LOCAL_FILENAME)); fileUri = Uri.parse("file://" + fileName).toString(); } } c.close(); } return fileUri; }
/** * get string column * * @param downloadId * @param columnName * @return */ private String getString(long downloadId, String columnName) { DownloadManager.Query query = new DownloadManager.Query() .setFilterById(downloadId); String result = null; Cursor c = null; try { c = downloadManager.query(query); if (c != null && c.moveToFirst()) { result = c.getString(c.getColumnIndex(columnName)); } } finally { if (c != null) { c.close(); } } return result; }
/** * get int column * * @param downloadId * @param columnName * @return */ private int getInt(long downloadId, String columnName) { DownloadManager.Query query = new DownloadManager.Query() .setFilterById(downloadId); int result = -1; Cursor c = null; try { c = downloadManager.query(query); if (c != null && c.moveToFirst()) { result = c.getInt(c.getColumnIndex(columnName)); } } finally { if (c != null) { c.close(); } } return result; } }
Cursor c = null; try { c = downloadManager.query(query); if (c != null && c.moveToFirst()) { bytesAndStatus[0] = c
private DownloadEvent getDownloadState(long downloadId, String url) { int status = -1; int mProgress = 0; DownloadManager.Query query = new DownloadManager.Query().setFilterById(downloadId); Cursor c = downloadManager.query(query); if (c != null) { if (c.moveToFirst()) { status = c.getInt(c.getColumnIndexOrThrow(DownloadManager.COLUMN_STATUS)); switch (status) { case DownloadManager.STATUS_PENDING: mProgress = 0; break; case DownloadManager.STATUS_PAUSED: case DownloadManager.STATUS_RUNNING: int mDownload_so_far = c.getInt(c.getColumnIndexOrThrow(DownloadManager.COLUMN_BYTES_DOWNLOADED_SO_FAR)); int mDownload_all = c.getInt(c.getColumnIndexOrThrow(DownloadManager.COLUMN_TOTAL_SIZE_BYTES)); mProgress = (mDownload_so_far * 99) / mDownload_all; break; case DownloadManager.STATUS_SUCCESSFUL: mProgress = 100; break; case DownloadManager.STATUS_FAILED: mProgress = 0; break; } } c.close(); } return new DownloadEvent(url, status, mProgress); }
DownloadManager.Query q = new DownloadManager.Query(); q.setFilterById(downloadId); Cursor cursor = manager.query(q); cursor.moveToFirst(); int bytes_downloaded = cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_BYTES_DOWNLOADED_SO_FAR));
DownloadManager manager = (DownloadManager)getSystemService(Context.DOWNLOAD_SERVICE); DownloadManager.Query query = new DownloadManager.Query(); Cursor c = manager.query(query);
ArrayList<QueuedDownload> downloads = new ArrayList<>(); DownloadManager downloadManager = (DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE); DownloadManager.Query myDownloadQuery = new DownloadManager.Query(); myDownloadQuery.setFilterByStatus(DownloadManager.STATUS_RUNNING | DownloadManager.STATUS_PAUSED | DownloadManager.STATUS_PENDING); Cursor cursor = downloadManager.query(myDownloadQuery); while (cursor.moveToNext()) { // Parse each download } cursor.close();
protected void putCompletedDownloadOnMap() { DownloadManager.Query q = new DownloadManager.Query(); q.setFilterById(downloadId); Cursor cursor = downloadManager.query(q); cursor.moveToFirst(); String localFilename = cursor.getString(cursor.getColumnIndex(DownloadManager.COLUMN_LOCAL_FILENAME)); Set<File> fileSet = new HashSet<>(); fileSet.add(new File(localFilename)); OSMMapBuilder.addOSMFilesToModel(fileSet); } }
Button remove = (Button) findViewById(R.id.remove); remove.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { DownloadManager.Query query = new DownloadManager.Query(); query.setFilterByStatus (DownloadManager.STATUS_FAILED|DownloadManager.STATUS_PENDING|DownloadManager.STATUS_RUNNING); DownloadManager dm = (DownloadManager) getSystemService(DOWNLOAD_SERVICE); Cursor c = dm.query(query); while(c.moveToNext()) { dm.remove(c.getLong(c.getColumnIndex(DownloadManager.COLUMN_ID))); } } });
Query query = new Query(); query.setFilterById (DownloadManager.STATUS_FAILED|DownloadManager.STATUS_PENDING|DownloadManager.STATUS_RUNNING); DownloadManager dm = (DownloadManager) getSystemService(DOWNLOAD_SERVICE); Cursor c = dm.query(query); while(c.moveToNext()) { // Here you have all the downloades list which are running, failed, pending // and for abort your downloads you can call the `dm.remove(downloadsID)` to cancel and delete them from download manager. dm.remove(cursor.getLong(cursor.getColumnIndex(DownloadManager.COLUMN_ID))) }
DownloadManager dm = (DownloadManager) getSystemService(DOWNLOAD_SERVICE); DownloadManager.Query query = new DownloadManager.Query(); query.setFilterById(idsToQuery); query.setFilterByStatus(DownloadManager.STATUS_PAUSED); Cursor cursor = dm.query(query); if (cursor.moveToFirst()) { // do whatever you would like with the result }
@NonNull Cursor mockSuccessCursor() { Cursor cursor = mock(Cursor.class); when(mDownloadManager.query(any(DownloadManager.Query.class))).thenReturn(cursor); when(cursor.moveToFirst()).thenReturn(true); when(cursor.getColumnIndexOrThrow(DownloadManager.COLUMN_STATUS)).thenReturn(0); when(cursor.getInt(0)).thenReturn(DownloadManager.STATUS_SUCCESSFUL); when(cursor.getColumnIndexOrThrow(DownloadManager.COLUMN_LOCAL_URI)).thenReturn(1); when(cursor.getString(1)).thenReturn("content://downloads/all_downloads/" + DOWNLOAD_ID); return cursor; }
@NonNull private Cursor mockProgressCursor(long progress) { Cursor cursor = mock(Cursor.class); when(mDownloadManager.query(any(DownloadManager.Query.class))).thenReturn(cursor); when(cursor.moveToFirst()).thenReturn(true); when(cursor.getColumnIndexOrThrow(DownloadManager.COLUMN_STATUS)).thenReturn(0); when(cursor.getInt(0)).thenReturn(DownloadManager.STATUS_RUNNING); when(cursor.getColumnIndexOrThrow(DownloadManager.COLUMN_BYTES_DOWNLOADED_SO_FAR)).thenReturn(1); when(cursor.getLong(1)).thenReturn(progress); when(cursor.getColumnIndexOrThrow(DownloadManager.COLUMN_TOTAL_SIZE_BYTES)).thenReturn(2); when(cursor.getLong(2)).thenReturn(progress > 0 ? (long) (100 * MEBIBYTE_IN_BYTES) : -1); return cursor; }
@Test public void downloadCursorEmpty() { /* Simulate async task. */ waitDownloadTask(); /* Process download completion. */ completeDownload(); Cursor cursor = mock(Cursor.class); when(mDownloadManager.query(any(DownloadManager.Query.class))).thenReturn(cursor); /* Simulate task. */ waitCheckDownloadTask(); /* Check we completed workflow without starting activity because installer not found. */ verify(cursor).close(); verify(mContext, never()).startActivity(any(Intent.class)); verifyStatic(); SharedPreferencesManager.remove(PREFERENCE_KEY_DOWNLOAD_STATE); }