Использование DownloadManager для загрузки в режиме инкогнито

Могу ли я использовать android.app.DownloadManager для загрузки файлов, которые будут доступны (и видны) только моему приложению?

Решение должно работать для API 9 (2.3), если есть сторонняя библиотека, которая будет работать так же, как DM, сообщите мне об этом.


person Lukasz 'Severiaan' Grela    schedule 09.12.2013    source источник


Ответы (1)


Не напрямую. По умолчанию загрузки сохраняются в сгенерированном имени файла в общем кэше загрузки и могут быть удалены системой в любое время для освобождения места.

Вы можете зарегистрировать BroadcastReceiver, чтобы получать уведомления о завершении загрузки. В этом ресивере вы можете получить путь к скачанному файлу и самостоятельно скопировать его во внутреннюю память. Затем вы можете удалить файл из пути по умолчанию.

См. это руководство, где приведен пример получения сообщения о завершении загрузки. и отвечая на него.

person Anup Cowkur    schedule 09.12.2013
comment
Это своего рода обходной путь, но меня больше интересовало ограничение доступа к файлам для пользователя. С DM он попадает в область уведомлений, и пользователь также может получить все загрузки. И я хочу ограничить этот доступ только тем приложением, которое запросило загрузку, другими словами, использовать DM для выполнения тяжелой работы по загрузке/повторной попытке и т. д., но только мое приложение имеет доступ и будет управлять файлом. - person Lukasz 'Severiaan' Grela; 09.12.2013
comment
может быть, вы знаете замену DM, которую я мог бы использовать, и она будет иметь такое поведение - person Lukasz 'Severiaan' Grela; 09.12.2013
comment
Вы можете использовать setNotificationVisibility (developer.android.com /reference/android/app/), чтобы скрыть уведомление от пользователя. Однако этот метод доступен только в API 11. - person Anup Cowkur; 09.12.2013
comment
Да, я должен упомянуть, что решение должно работать с уровня API 9, спасибо - person Lukasz 'Severiaan' Grela; 09.12.2013
comment
В этом случае вам, вероятно, придется свернуть свое собственное решение, я полагаю. - person Anup Cowkur; 09.12.2013