Я пытаюсь загрузить файл с помощью сервисов в android ... Я смог написать программу, и я могу загрузить то, что захочу. но проблема связана с индикатором прогресса !!! Я не могу определить общую длину файла (или размер) и текущий размер загружаемого файла. Я использовал этот код, чтобы получить файл длинуобновить индикатор выполнения при загрузке файла в android
URL url = new URL(urlToDownload);
URLConnection connection = url.openConnection();
connection.connect();
int fileLength = connection.getContentLength();
и я использовал эту часть кода для определения текущего загруженного размера
InputStream input = new BufferedInputStream(connection.getInputStream());
OutputStream output = new FileOutputStream("/sdcard/BarcodeScanner-debug.apk");
byte data[] = new byte[1024];
long total = 0;
int count;
while ((count = input.read(data)) != -1) {
total += count;
int currentValue=(total * 100/fileLength);
output.write(data, 0, count);
}
проблема заключается в том, что в конце загрузки я получил что-то вроде 241% вместо 100% (потому что длина файла для ex была около 12226, а общая сумма 29349) У вас есть какие-либо идеи по этой теме.
могли бы вы поделиться код, как вы показываете прогресс, а также проверить, делает загрузку url поддерживает 'getContentLength' –