Самое простое, что можно сделать для этого кода, - это определить, сколько времени занимает итерация цикла while и использовать его, чтобы оценить, сколько осталось времени.Например, если вы обрабатываете 0,1 Мб за одну итерацию в секунду, и у вас есть всего 1 Мбайт, вы можете догадаться, что у вас осталось около 9 секунд.
Производительность SD-карты сильно различается для разных телефонови скорость может быть непредсказуемой даже на том же телефоне (например, я получаю большие случайные задержки на моем телефоне для маленьких файлов).Я не думаю, что стоит делать что-то более сложное, чем описанное выше, например, тестирование телефона перед обработкой файла.Вероятно, для большинства целей достаточно процентного бара.