Не могу удалить файл

С помощью OkHttpClient загружаю файл в директорию /storage/emulated/0/Download/.
При следующей загрузки проверяю есть ли уже такой файл. И если есть нужно его удалить.

...
public void onResponse(@NonNull Call call, @NonNull Response response) throws IOException {
 String string = response.body().string();
 if (!string.equals("empty")) {
 apk_file_path = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), APK_FILE);
if (apk_file_path.exists()) {
if (apk_file_path.delete()) {
// Досюда не доходит.
}
}
}
}

Пробовал разные варианты для удаления, но никак не выходит удалить.


Ответы (1 шт):

Автор решения: Barmaley

Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) находится не в частном владении приложения, а в т.н. внешнем окружении. Прямой доступ к нему начиная с Android Q - запрещен/ограничен. Более подробно в scoped storage - просто так удалить его сложно (но можно).

Исходя из постановки задачи, я бы рекомендовал записывать файл во внутреннюю область:

File filesDir = context.getFilesDir()

Туда и писать проще и удалить можно без проблем

→ Ссылка