2016-11-30 5 views
1

Мы пытаемся включить некоторые связанные изображения с нашим приложением, которое интегрируется с URLImages, но распаковывает их в папку хранения (с URL-адресами, соответствующими ожидаемым).
Он отлично работает на ios и в симуляторе, но не может найти или получить доступ к правильному пути на Android.Codename не может получить правильный путь хранения на Android

String storagePath = getStoragePath(url + suffix); 
OutputStream os = Storage.getInstance().createOutputStream(storagePath); 
... 

getStoragePath(String string){ 
    for (String s : Arrays.asList("/", "\\", "%", "?", "*", ":", "=")) { 
     string = StringUtil.replaceAll(string, s, "_"); 
    } 
    return string; 
} 

На андроиде путь кажется неправильным.
Есть ли способ вручную получить правильный путь, а затем использовать FileSystemStorage, чтобы открыть выходной поток?
Я бы предпочел не жестко закодировать какие-либо пути, так как они иногда меняются и могут варьироваться от системы к системе. Любые другие варианты, которые я не вижу здесь?

ответ

0

Вы кодируете деталь реализации, которая специально скрыта и может измениться в будущем. FileSystemStorage & Storage логически раздельны и не должны смешиваться.

Если вы хотите получить доступ с FileSystemStorage, вы должны всегда использовать этот API и избегать Storage.

Это дизайн, в хранении некоторых ОС реализован в очень уникальном способе, который не отображает в файловой системе файл на все ...

+0

Но даже если это склонное изменить интерфейс должна быть последовательны. Мой вопрос действительно сводится к тому, почему в Android нет Storage.getInstance(). CreateOutputStream() не создает поток вывода в хранилище приложений? Является ли URLImage что-то за кулисами, чтобы заставить его работать? – peopletookallthegoodnames

+0

Нет. Android-устройство A будет использовать один путь, а устройство Android B будет использовать другой путь. Некоторые устройства не обеспечивают никакого пути к достижению этого пути ... «URLImage» не делает ничего подобного, и мы не смешиваем API, они полностью разделяют реализацию и использование. –

+0

, поэтому, если я использую Storage.getInstance(). CreateOutputStream (storagePath), он должен работать, но это не так. На андроиде путь не существует или не указывает на правильное место. есть что-то, что мне нужно для создания папки сначала – peopletookallthegoodnames