I want to know the progress of some download.
When I'm getting some resource from the internet, like this:
String myFeed = request.getURI().toString(); URL url = new URL(myFeed); URLConnection connection = url.openConnection(); HttpURLConnection httpConnection = (HttpURLConnection) connection; int responseCode = httpConnection.getResponseCode(); if (responseCode == HttpURLConnection.HTTP_OK) { InputStream in = httpConnection.getInputStream(); // Process the input stream }
When "InputStream in = httpConnection.getInputStream();" is called,
all the content of the file is downloaded at once.
If I use:
htttpResponse = httpClient.execute(httpRequestBase);
The problem is the same.
How can I detect the actual progress of the download?
Thank you all!
Generally, the progress indicators in android are implemented by using the ProgressBar class. To display the progress indicators in our app, we need to add the progress bar to our notification by calling setProgress(max, progress, false) method and then issue the notification.
Go to Settings - Apps - All Apps - Chrome - Notifications. Now enable show notification button and in sub categories enable notification for downloads. Follow same procedure for any other browser.
To prevent file downloads, go to Settings > Apps & notifications, and tap the app name in the list. Tap Permissions and toggle Storage to off.
I think this has been answered here.
In a nutshell: use the "Content-Length" which should be in the header fields.
EDIT: sorry, I wasn't answering the question exactly. Basically once you know the expected total content length then you can keep track of how much data you have received and calculate the percentage complete.
See also: How to create a download manager
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With