Hi all!
I’m not sure if this is Unreal related question, or Android related, but still, we’ve approach a serious problem when deploying a game on some devices with API23.
First of all - from API23 the application must ask for any additional permissions (in form of alert for example). It should ask for an access to telephone, contacts, external storage etc. Thankfuly, we don’t need any extra permission from the for a game, right? Well, I was thinking like that but now we have some issues with Samsung Galaxy Sx family and with Nvidia Shield
At those devices the game simply cannot mount the OBB (I have an assertion on check in MountOBB method in AndroidFile.cpp)
The OBB file is located in the /storage/emulated/0/Android/obb/com.company.name/ directory.
When I enable the Storage permission in the app settings everything works.
When I request for the permission in the runtime using the requestPermissions method in Java everything works.
But still, reading OBB file from Android/obb directory, as far as I know, shouldn’t require any additional permissions!
More, the issue occurs only on some of the devices we’ve tested:
- Samsung Galaxy S5, S6, S7
- Nvidia Shield Tablet
On devices from Nexus family everything works fine.
On those devices there was also a problem with pushing obb via the bat file from Binaries. The access to the (…)/0/Android/obb was denied and only (…)/0/obb directory was accessible. Still, reading from this directory requires READ_EXTERNAL_STORAGE permission. I was able to push obb files to the proper directory via windows explorer.
Even more mysterious - when I push files to the /storage/emulated/0 directory and then by using the internal file manager copy them to the (…)/0/Android/obb directory, everything works fine!
Long story short:
-
Does the /storage/emulated/0/Android/obb/com.company.name directory requires READ_EXTERNAL_STORAGE permission to read?
-
If no, then why on Samsung Galaxy Sx it can’t read them?
-
If yes, then are we really doomed to stick with the popup asking for permissions at the beginning of the game?