Как я могу обслуживать файлы из внешнего хранилища SECONDARY с помощью FileProvider
?FileProvider и вторичное внешнее хранилище
Текущая реализация FileProvider
обрабатывает только первый каталог, возвращаемого ContextCompat.getExternalFilesDirs
...
} else if (TAG_EXTERNAL_FILES.equals(tag)) {
File[] externalFilesDirs = ContextCompat.getExternalFilesDirs(context, null);
if (externalFilesDirs.length > 0) {
target = externalFilesDirs[0];
}
}
...
Кажется, что нет никакого способа определить <path>
записи для FileProvider
, что соответствует вторичному внешнему пути хранения. ..
Что вы имеете в виду со вторичным внешним хранилищем? – greenapps
Каталоги, возвращаемые 'ContextCompat.getExternalFilesDirs' с индексом массива> 0. На большинстве устройств это, вероятно, съемная SD-карта. – artkoenig
AFAIK, 'FileProvider' не поддерживает это. Вы могли бы пристроить что-то с помощью [моего «StreamProvider»] (https://github.com/commonsguy/cwac-provider), хотя поддержка этого «из коробки» не поддерживается. Я добавил это в список дел для «StreamProvider», так как вы делаете хороший вывод. В частности, поскольку в этих местах не задействованы разрешения приложений, они должны быть обслуживаемыми, по крайней мере, когда они существуют. То, что может показаться сложным, - это правильно обрабатывать случай, когда съемное хранилище недоступно, но вы просили его обслуживать. – CommonsWare