Получите имя файла загрузки с помощью диспетчера загрузок в Android

Как мы знаем, DownloadManager.COLUMN_LOCAL_FILENAME - это устарело с уровня API 24 и для получения имени файла файла, загруженного из диспетчера загрузки Google, сообщают имя файла доступа с помощью ContentResolver.openFileDescriptor ()

Может ли кто-нибудь предложить мне, как получить доступ к имени файла с помощью ContentResolver.openFileDescriptor ()


person Jarvis    schedule 23.01.2017    source источник


Ответы (2)


Вы не можете получить доступ к имени файла через openFileDescriptor(). Поскольку вы были тем, кто запросил загрузку, вы уже знаете, каково имя файла.

person CommonsWare    schedule 23.01.2017
comment
Спасибо за ответ, тогда в чем польза ContentResolver.openFileDescriptor ()? - person Jarvis; 23.01.2017
comment
@ user2534612: Чтобы получить загруженный контент. Честно говоря, я не знаю, зачем это рекомендовать, поскольку у вас уже есть доступ к файлу (в противном случае, AFAIK, вы не сможете поставить запрос на загрузку в очередь). - person CommonsWare; 23.01.2017

Я не использовал ContentResolver.openFileDescriptor ().

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

String absolutePath =  Uri.parse(cursor.getString(cursor.getColumnIndex(DownloadManager.COLUMN_LOCAL_URI))).getPath();

И конечно:

File file = new File(absolutePath);
person u2gilles    schedule 01.02.2017