Osmdroid and marshmallow

2019-09-25 08:50发布

问题:

I'm using osmdroid 5.2 lib in android 6.0. I'm asking WRITE_EXTERNAL_STORAGE and ACCESS_COARSE / FINE_LOCATION permissions on realtime.
But map not working:

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

Map works only from the second run application.
Can anyone help me? Thanks in advance.

回答1:

You have to ask for the permissions before the mapview is loaded and displayed.

Either that, or the path is read only. On some android devices Environment.getExternalStorageDir returns a read only partition. No clue why, but that will definitely cause issues. It can be overridden with the class OpenStreetMapTileProviderConstants