2013-12-09 3 views
0

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

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

ответ

0

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

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

См. this tutorial в качестве примера о получении полной трансляции для загрузки и ответа на нее.

+0

Это своего рода обходной путь, но меня больше интересовало ограничение доступа к файлам для пользователя. С DM он переходит в область уведомлений, и пользователь может также получить все загрузки. И я хочу ограничить этот доступ только приложением, которое запросило загрузку, другими словами, использовать DM для тяжелой работы по загрузке/повторному запуску и т. Д., Но только мое приложение имеет доступ и будет управлять файлом. –

+0

Возможно, вы знаете замену DM, которую я мог бы использовать, и будет иметь такое поведение. –

+0

Вы можете использовать 'setNotificationVisibility' (http://developer.android.com/reference/android/app/DownloadManager.Request.html#setNotificationVisibility(int)), чтобы скрыть уведомление от пользователя. Этот метод доступен только из API 11. –

Смежные вопросы