Android DownloadManager полное уведомление о загрузке открывает временный файл?

#android #android-notifications #android-download-manager

Вопрос:

Я использую следующее для загрузки файла с DownloadManager :

         DownloadManager downloadmanager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE);
        Uri uri = Uri.parse("https://somedomain.com/myfile.jpg);
        String filename = "myDownloadedFile.jpg";

        DownloadManager.Request request = new DownloadManager.Request(uri);
        request.setTitle(filename);
        request.setDescription("Downloading");
        request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
        request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS,"myAppName/".concat(filename));
        downloadmanager.enqueue(request);
 

Это идеально загрузит файл и сохранит его в правильном подкаталоге загрузок.

Однако, когда я нажимаю на Download Manager уведомление «Загрузка завершена» (в котором отображается правильное имя файла и «Загрузка завершена»), открывающийся файл открывается откуда-то еще и имеет числовое имя файла. Согласно файловому менеджеру ES, файл открывается из /document/1234 (номер меняется при каждой загрузке) — это место, которое я даже не могу найти на своем устройстве!

Как я могу получить щелчок уведомления, чтобы открыть файл с того места, где он был действительно сохранен (т. Е. Downloads/myAppName/myDownloadedFile.jpg )?


Чтобы объяснить подробнее для @blackapp:

Если я нажму на уведомление, правильное загруженное изображение откроется в любом приложении, которое я выберу (например, я использую браузер изображений ES), но если я посмотрю свойства файла (в браузере изображений ES), там будет указано местоположение файла /document/1234 .

Файл, однако, правильно сохраняется в DownloadsmyAppNamemyDownloadedFile.jpg приведенном выше коде — я подтвердил это, перейдя в Downloads/myAppName/ папку на моем устройстве.

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

Комментарии:

1. Нет, не из /документа/1234, а из содержимого://<поставщик>/документ/1234.

2. Я хочу, чтобы уведомление открывало файл из Downloads/myAppName/myDownloadedFile.jpg .

3. Вы никак не отреагировали на то, что я сказал вам о том, что вы называете местоположением. Почему нет??? Какое приложение показывает неправильный файл? И как ES Explorer должен узнать этот файл? Пожалуйста, расскажите всю историю целиком.

4. Я добавил дополнительные пояснения в конец вопроса, так как комментарии слишком короткие. Ваш комментарий сам по себе не имел для меня никакого смысла, так как он, казалось, только объяснял, что расположение открытого файла в браузере изображений ES было неполным. Это не объясняет, как получить щелчок уведомления, чтобы открыть файл из поддира загрузки.

5. (in ES Image Browser) it say that the file location is /document/1234. Тогда вам следует прочитать дальше, как я уже говорил вам, что это не местоположение, а часть схемы контента://. Вам лучше не использовать этот плохой браузер изображений es Explorer, так как это единственный мусор и чепуха, которым вы учитесь у него. Возьмите лучшее приложение.