My app requires access to the storage - just to read some OBB data - due to the size of the data we're dealing with. By definition this is classed as a 'dangerous' permission by android, and rightly so, so as of Android 6.0 we need to request it at the app's start before we can do anything.
The issue is that the user can deny us that permission, when the app fundamentally requires it to do anything past the main menu.
What is the correct way to deal with the situation where a user refuses to grant 'dangerous' permission at runtime, and an app is practically featureless without it?
EDIT: To clarify I know the code i need to do this and the callbacks involved. Code samples are not required. I need to know what i should do if constant denial will cripple my app to the usefulness of a rock. Error then kill the app? Show main menu with a message when the user tries to do anything? It may also be worth noting that this is a native app, so the C++ is calling back to the java to do this.