Загруженный файл из приложения Android не отображается в каталоге "Загрузки"

Я занимаюсь разработкой приложения, в котором я загружаю PDF файлы с удаленного сервера. Я до сих пор успешно загружал файлы PDF на свой телефон через приложение. Проблема, с которой я столкнулся, заключается в том, что загруженный файл не отображается в каталоге "Загрузки" на моем Galaxy Nexus. Когда я использую приложение файлового менеджера, я вижу файл там, и он открывается очень хорошо.

Я попытался использовать следующие параметры в своем коде, но ни один из них, похоже, не решил мою проблему (обе эти опции успешно загружают файл и его вид в файловом менеджере):

outFile = new File(Environment.getExternalStorageDirectory() + "/" + fileName);

и

outFile = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), fileName);

Может кто-нибудь, пожалуйста, помогите мне с некоторыми подсказками? Любые подсказки или подсказки будут очень полезны.

1 ответ

Я смог сделать это с помощью DownloadManager следующим образом:

dm = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
 Request request = new Request(
 Uri.parse("http://"));
 enqueue = dm.enqueue(request);
 BroadcastReceiver receiver = new BroadcastReceiver() {
 @Override
 public void onReceive(Context context, Intent intent) {
 String action = intent.getAction();
 if (DownloadManager.ACTION_DOWNLOAD_COMPLETE.equals(action)) {
 long downloadId = intent.getLongExtra(
 DownloadManager.EXTRA_DOWNLOAD_ID, 0);
 Query query = new Query();
 query.setFilterById(enqueue);
 Cursor c = dm.query(query);
 if (c.moveToFirst()) {
 int columnIndex = c
 .getColumnIndex(DownloadManager.COLUMN_STATUS);
 if (DownloadManager.STATUS_SUCCESSFUL == c
 .getInt(columnIndex)) {
 Toast.makeText(getApplicationContext(), "Download Complete!!!", Toast.LENGTH_LONG).show();
 }
 }
 }
 }
 };
 registerReceiver(receiver, new IntentFilter(
 DownloadManager.ACTION_DOWNLOAD_COMPLETE));

licensed under cc by-sa 3.0 with attribution.