private void queryStatus(View v) { Cursor c= mgr.query(new DownloadManager.Query().setFilterById(lastDownload));
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();
@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(); } }
@Nullable private Cursor getMissionCursor(long id) { if (downloadManager == null) { NotificationHelper.showSnackbar("Cannot get DownloadManager."); return null; } Cursor cursor = downloadManager.query(new DownloadManager.Query().setFilterById(id)); if (cursor == null) { return null; } else if (cursor.getCount() > 0 && cursor.moveToFirst()) { return cursor; } else { cursor.close(); return null; } }
DownloadManager.Query query = new DownloadManager.Query(); query.setFilterById(downloadId); // downloadId is returned to you upon DownloadManager.enqueue Cursor cursor = downloadManager.query(query); if (cursor != null && cursor.moveToFirst()) { try { int status = cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_STATUS)); // Decide what to do with it // Status are defined as constants in DownloadManager.STATUS_* } finally { cursor.close(); } }
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 }
Bundle extras = intent.getExtras(); DownloadManager.Query q = new DownloadManager.Query(); q.setFilterById(extras.getLong(DownloadManager.EXTRA_DOWNLOAD_ID)); Cursor c = YOUR_DM.query(q); if (c.moveToFirst()) { int status = c.getInt(c.getColumnIndex(DownloadManager.COLUMN_STATUS)); if (status == DownloadManager.STATUS_SUCCESSFUL) { // process download title = c.getString(c.getColumnIndex(DownloadManager.COLUMN_TITLE)); // get other required data by changing the constant passed to getColumnIndex } }
DownloadManager.Query query = new DownloadManager.Query(); query.setFilterById(downloadId); Cursor c = ((DownloadManager) getSystemService(BaseActivity.DOWNLOAD_SERVICE)).query(query); if (c.moveToFirst()) { int columnIndex = c.getColumnIndex(DownloadManager.COLUMN_STATUS); if (DownloadManager.STATUS_SUCCESSFUL == c.getInt(columnIndex)) { String uriString = c.getString(c.getColumnIndex(DownloadManager.COLUMN_LOCAL_URI)); String description = c.getString(c.getColumnIndex(DownloadManager.COLUMN_DESCRIPTION)); } }
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); } }
Bundle extras = intent.getExtras(); DownloadManager.Query q = new DownloadManager.Query(); q.setFilterById(extras.getLong(DownloadManager.EXTRA_DOWNLOAD_ID)); Cursor c = YOUR_DM.query(q); if (c.moveToFirst()) { int status = c.getInt(c.getColumnIndex(DownloadManager.COLUMN_STATUS)); if (status == DownloadManager.STATUS_SUCCESSFUL) { String filePath = c.getString(c.getColumnIndex(DownloadManager.COLUMN_LOCAL_FILENAME)); filename = filePath.substring( filePath.lastIndexOf('/')+1, filePath.length() ); } } c.close();
int[] bytesAndStatus = new int[]{-1, -1, 0}; DownloadManager.Query query = new DownloadManager.Query() .setFilterById(downloadId); Cursor c = null; try {
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); }
public void run() { DownloadManager.Query q = new DownloadManager.Query(); q.setFilterById(downloadId); Cursor cursor = manager.query(q); cursor.moveToFirst();
/** * 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; } }
/** * 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; }
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; }
Bundle extras = intent.getExtras(); DownloadManager.Query q = new DownloadManager.Query(); q.setFilterById(extras.getLong(DownloadManager.EXTRA_DOWNLOAD_ID)); Cursor c = YOUR_DM.query(q); if (c.moveToFirst()) { int status = c.getInt(c.getColumnIndex(DownloadManager.COLUMN_STATUS)); if (status == DownloadManager.STATUS_SUCCESSFUL) { // process download title = c.getString(c.getColumnIndex(DownloadManager.COLUMN_TITLE)); // get other required data by changing the constant passed to getColumnIndex } }
@Test public void query_shouldReturnColumnIndexes() throws Exception { ShadowDownloadManager manager = new ShadowDownloadManager(); long id = manager.enqueue(request.setDestinationUri(destination)); Cursor cursor = manager.query(new DownloadManager.Query().setFilterById(id)); assertThat(cursor.getColumnIndex(DownloadManager.COLUMN_URI)).isAtLeast(0); assertThat(cursor.getColumnIndex(DownloadManager.COLUMN_LOCAL_URI)).isAtLeast(0); assertThat(cursor.getColumnIndex(DownloadManager.COLUMN_LOCAL_FILENAME)).isAtLeast(0); assertThat(cursor.getColumnIndex(DownloadManager.COLUMN_DESCRIPTION)).isAtLeast(0); assertThat(cursor.getColumnIndex(DownloadManager.COLUMN_REASON)).isAtLeast(0); assertThat(cursor.getColumnIndex(DownloadManager.COLUMN_STATUS)).isAtLeast(0); }
@Test public void query_shouldReturnCursor() throws Exception { ShadowDownloadManager manager = new ShadowDownloadManager(); long id = manager.enqueue(request); Cursor cursor = manager.query(new DownloadManager.Query().setFilterById(id)); assertThat(cursor.getCount()).isEqualTo(1); assertThat(cursor.moveToNext()).isTrue(); }
@Test public void query_shouldReturnColumnValues() throws Exception { ShadowDownloadManager manager = new ShadowDownloadManager(); long id = manager.enqueue(request.setDestinationUri(destination)); Cursor cursor = manager.query(new DownloadManager.Query().setFilterById(id)); cursor.moveToNext(); assertThat(cursor.getString(cursor.getColumnIndex(DownloadManager.COLUMN_URI))).isEqualTo(uri.toString()); assertThat(cursor.getString(cursor.getColumnIndex(DownloadManager.COLUMN_LOCAL_URI))).isEqualTo(destination.toString()); }