2016-09-06 3 views
-3

Я использую osmdroid 5.2 lib в android 6.0. Я спрашиваю WRITE_EXTERNAL_STORAGE and ACCESS_COARSE/FINE_LOCATION permissions on realtime.
Но карта не работает:Osmdroid and marshmallow

Unable to decode stream: java.io.FileNotFoundException: /storage/emulated/0/osmdroid/tiles/Mapnik/14/10079/5358.png.tile: open failed: EACCES (Permission denied) 

Карта работает только со второго приложения запуска.
Может ли кто-нибудь мне помочь? Заранее спасибо.

+2

Вы также указали эти разрешения в AndroidManifest.xml? – j2ko

+0

Пожалуйста, попробуйте объяснить больше, что вы пробовали, есть слишком много возможностей, из-за которых может возникнуть проблема. –

ответ

0

Вы должны запросить разрешения до того, как карта будет загружена и отображена.

Либо это, либо путь читается только. На некоторых устройствах Android Environment.getExternalStorageDir возвращает раздел только для чтения. Не знаю, почему, но это определенно вызовет проблемы. Его можно переопределить классом OpenStreetMapTileProviderConstants

Смежные вопросы