169 похожих чатов

Всех приветствую. Подскажите пожалуйста,как получить путь к pdf файлу из

uri без специальных разрешений,кроме read_external_storage и read_media_images? Для картинок всё прекрасно работает,включая android 13,но если тип media uri document (строка 126),я не знаю,как быть. Вы можете посмотреть мой код на https://pastebin.com/bxN0Hvqr. Заранее благодарю всех за помощь.

44 ответов

68 просмотров

опять старая песня не существует никакого «пути к файлу»

Саша-Козловский Автор вопроса

Вопрос,как быть с pdf документами (проблема в строке 126).

Саша-Козловский Автор вопроса
Mike (деньги не клянчу)
android.provider.MediaStore#getDocumentUri, не?

java.io.FileNotFoundException: Volume not found for content://com.android.providers.media.documents/document/document%3A1000007596

Саша Козловский
java.io.FileNotFoundException: Volume not found fo...

Вы этот путь пытаетесь читать как обычный файл?

Саша-Козловский Автор вопроса
Leonid B.
Вы этот путь пытаетесь читать как обычный файл?

Ну вообще да,я обращаюсь к нему как файлу,но вот в строке 126 возникла проблема,т.е там надо как-то по-другому обрабатывать эти uri.

Саша-Козловский Автор вопроса

Так путь-то я не получу...

Саша Козловский
Так путь-то я не получу...

Ну сказали же, что именно путь к файлу есть не везде, не всегда и не у всего.

Саша-Козловский Автор вопроса
Leonid B.
Ну сказали же, что именно путь к файлу есть не вез...

Хорошо. Тогда как гарантированно получить имя файла? Меня удивляет ещё и то,что во всех примерах,где я видел,нету проверки на тип "document". Неужели ни у кого из здесь присутствующих не было задачи получить путь к документу через uri?

Саша Козловский
Хорошо. Тогда как гарантированно получить имя файл...

да нет никакого файла, не существует его, не обязан

Саша Козловский
Хорошо. Тогда как гарантированно получить имя файл...

имя файла так же можно вытянуть по юри с помощью курсора, но его может не быть. Этот параметр наллейбл

Саша-Козловский Автор вопроса
Саша Козловский
Но ведь в некоторых случаях существует.

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

Саша-Козловский Автор вопроса

Вопрос как гарантированно получить имя файла,которого типа нет.

Саша-Козловский Автор вопроса
Leonid B.
Никак

Вот именно,а мне на сервер желательно передавать имя файла.

Саша Козловский
Вот именно,а мне на сервер желательно передавать и...

нет гарантии такой. Ну что поделать. нет и нет вот..

Саша-Козловский Автор вопроса
Leonid B.
Сгенерировать любое своё и отправить

Ну вот только так и придётся. На всякий случай ещё в другом чате/чатах поспрашиваю,вдруг каой-то способ есть,учитывая,что имя мне по-любому нужно,чтобы узнать расширение и отправить его на сервер через mediaType в okhttp.

Саша Козловский
Ну вот только так и придётся. На всякий случай ещё...

Значит создавай темп файл перед отправкой, его и сконвертить проще и имя будет 100%

Саша-Козловский Автор вопроса
Андрей
Значит создавай темп файл перед отправкой, его и с...

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

Саша Козловский
Об этом я тоже думал,т.е создать файл в кеш директ...

Там можно создавать файл и задать ему удаление при выходе

Там прям есть создание файла createTemp что-то там, оно сразу создаст его в кеш

Саша-Козловский Автор вопроса
Саша Козловский
А,посмотрю. Это в context?

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

Саша Козловский
Хорошо. Тогда как гарантированно получить имя файл...

Задача была, решал через медиа курсор, гарантий не дает метод. "на каком то устройстве молча не будет работать". непрозрачные ури типа content: надо открывать через контент резольвер, там есть гарантия

Саша-Козловский Автор вопроса
Сергей П.
Задача была, решал через медиа курсор, гарантий не...

А имя с подобными uri,т.е начинающимися с content гарантированно через курсор получить можно и нет ли у Вас решения для pdf,я про медиа курсор? Интересно,на каких устройствах получение пути через медиа не работает?

Саша Козловский
А имя с подобными uri,т.е начинающимися с content ...

Да тупо прямо на эмуляторе вот не работало.

Саша-Козловский Автор вопроса
Сергей П.
Да тупо прямо на эмуляторе вот не работало.

Ну на эмуляторе всё время есть какие-то сюрпризы.

Саша-Козловский Автор вопроса
Саша Козловский
Ну на эмуляторе всё время есть какие-то сюрпризы.

Хотя на реальных устройствах они тоже могут быть.

Саша-Козловский Автор вопроса

Огромное спасибо.

Жесть динозавра откопали

Саша Козловский
Огромное спасибо.

Нагуглил его на СО по словам типа android content uri get real path Но единственный повод вычислять реальный путь - это если сторонняя либа хочет File и не умеет uri читать

Андрей
Жесть динозавра откопали

кремируйте её быстрее

Саша Козловский
Хорошо. Тогда как гарантированно получить имя файл...

Господи, да открой память телефона в интенте и верни ссылку на файл в результате и потом вальстримь еë в инпутстрим(урьль)

Саша Козловский
Хорошо. Тогда как гарантированно получить имя файл...

И не надобно никаких разрешений, только куери в манифест закинуть

Саша-Козловский Автор вопроса

Как её открыть?

Саша Козловский
Как её открыть?

private fun openFile() { val intent = Intent(Intent.ACTION_OPEN_DOCUMENT).apply { type = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" addCategory(Intent.CATEGORY_OPENABLE) } if (intent.resolveActivity(getPackageManager()) != null) { startForResult.launch(intent) } else { Toast.makeText(this@MainActivity, "There is no app that support this action", Toast.LENGTH_SHORT).show() } }

Капитан Шимпанзе
private fun openFile() { val intent = Inte...

Оберните код в теги: 3 символа ` до и после кода (в случае одиночной конструкции достаточно 1 ` с обеих сторон). Спасибо!

Похожие вопросы

Обсуждают сегодня

а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Всем привет! Подскажите. Я написал приложение на Delphi 10.2 Tokyo под Windows 10. И передо мной стал вопрос о том чтобы сделать это приложение кроссплатформенным (под Linux и...
Дмитрий Завгородний
24
Привет всем. Подскажите где можно посмотреть, какая версия электрон, поддерживает версии windows? Некий changelog. Мне бы желательно, поддержку 7,8,10... latest, как понимаю и...
Anonym Squad
21
Портфолио: Зовут меня Александр, мне 36 лет. Город Пушкино. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github....
Magic
10
Не ну фпц - это уже просто троллинг какой-то. Элементарный код нельзя собрать. ЧЯДНТ? program Project1; {$mode delphi} uses SysUtils, Classes, Generics.Collections; var...
Peter
4
а где есть mysql cloud кроме яндекс-клауд?
Oleg Nosov
13
Есть ли смысл устраиваться на 1с ? Даст это плюс в дальнейшем трудоустройстве на php? Просто у меня в городе вакансий на пхп нету. Или лучше удаленно искать. Опыта работы нету...
Azamat
14
hi im a cs student. i need some advice from people who have enough experience in Embedded Software. I need to know whether this profession is suitable for me. I have watched s...
Sahand 🏔️
8
А кто-нибудь запихивал сборку перловых модулей/образов с perl приложениями в окружения без интернета (в специализированном CI/CD)? У меня сейчас есть ряд cpanfile, которые н...
Andrey Smirnov / 𝓪𝓵𝓵𝓽𝓮𝓻 /
14
Кстати а покупал кто-нибудь ЭЦП для подписи кода? А то у меня на некоторых компах и ОС иногда SmartScreen винды программу за вирус принимал. Если купить такую ЭЦП и подписыват...
Дмитрий Завгородний
15
Карта сайта