Android 6 - Expansion File / Permissions issue (according to Google ?)

Hi everyone !

I’ve been contacted by Google : they would like me to improve my game in order to meet the Android 6.0 permissions requirements. And I’m kinda lost ! My app needs to download an expansion file. To do that, during the first launch, it automatically requires permissions in order to download the expansion file. If the user declines, it asks it again but this time, he’s got a chance to select “Never Ask Again”. If he selects “Never Ask Again”, the app simply quits and the only way to start the game is to go to the Settings and allow the permissions.

Here’s what I have when I launch the app (red circles shows my touch interactions):

corona_android.png

And this is what Google told me :

The app shouldn’t exit**  if the user selects “Cancel” after the app explains why the permissions is needed. The app should re-trigger the request until the user has either accepted the permission, or has selected “Never ask again**.” Reserve sending a user to the app settings until they’ve selected “Never ask again.”

If I understand correctly, that would mean the user would be stuck in a loop, between 2 popups : the one where the user is asked to allow the permission, and an other one where the app explains why the user needs to authorize the permission. And the app should never exit by itself. But… I don’t have any control on that since it’s automatically done by Corona SDK, am I correct ? 

And to be honest, it feels kinda weird that the app should never exit… What can / should I do to fulfill Google’s request ?

I just wanted to add that I’ve asked the same question on Reddit. And here’s one of the reply I got :

The expansion library provided by google is old probably broken. You don’t need storage permission for placing data into the internal storage if you do it properly.

This dialog pops up because the expansion library uses deprecated functionality…

I don’t how this information can be applied to my own issue or even to Corona SDK, but if he’s right, it might be good to know.

I’m a little confused about Google’s feedback here.

We only show the “Settings” button option if the user denied permission *AND* checked “Never ask again”.  We have no choice but to offer a “Settings” option at that point because Android’s native permission requesting API won’t allows us to ask the user anymore.  And trapping the user with never ending alert popups would be a bad user experience (and against Google’s permission guidelines) because it prevents you from using the Back button to exit the app (although the Home button is still an option).  Perhaps they just want a blank screen with 1 button that allows you user to try again?  I dunno.  <_<

Meanwhile, the Assassin’s Creed app (link below) will always crash on startup after you deny it permission and tell it to never ask again.  At least that was the behavior a few months ago.  Hmm…

   https://play.google.com/store/apps/details?id=com.ubisoft.assassin.pirates

For your info, we’re following Google’s guidelines in the link below at the very bottom of the page.  The “critical permissions” section.

   https://www.google.com/design/spec/patterns/permissions.html#permissions-denied-permissions

From there they state that it’s okay to Exit the app in that case.  But perhaps Google is looking for a screen implemented exactly as shown in their guide’s screenshot, without native alerts.  They’ve never had a problem with the way Corona-made apps was handling this before.  You may have gotten unlucky with this particular app reviewer whose being unusually harsh.  Especially since I’ve seen other featured games on Google Play get away with crashing in this case.

Hmm… I don’t have an answer to this either.  Changing this screen on Corona’s end is a major high-risk change.

Is this blocking your app from being featured?

Hi Joshua !

Well… I’m also very confused about their feedback. And yes, this is preventing my app from being featured. And to be honest, I’ve been struggling with them for weeks now and every time, it was just… really confusing.

Do you mind if I send them an email quoting you (as a Corona Staff member) ?

We (the Corona team) only show the “Settings” button option if the user denied permission *AND* checked “Never ask again”.  We have no choice but to offer a “Settings” option at that point because Android’s native permission requesting API won’t allows us to ask the user anymore.  And trapping the user with never ending alert popups would be a bad user experience (and against Google’s permission guidelines) because it prevents you from using the Back button to exit the app (although the Home button is still an option). 

Perhaps this will convince them…

Go for it.  In fact, you can tell them to feel free to contact us if they want.

I just wanted to add that I’ve asked the same question on Reddit. And here’s one of the reply I got :

The expansion library provided by google is old probably broken. You don’t need storage permission for placing data into the internal storage if you do it properly.

This dialog pops up because the expansion library uses deprecated functionality…

I don’t how this information can be applied to my own issue or even to Corona SDK, but if he’s right, it might be good to know.

I’m a little confused about Google’s feedback here.

We only show the “Settings” button option if the user denied permission *AND* checked “Never ask again”.  We have no choice but to offer a “Settings” option at that point because Android’s native permission requesting API won’t allows us to ask the user anymore.  And trapping the user with never ending alert popups would be a bad user experience (and against Google’s permission guidelines) because it prevents you from using the Back button to exit the app (although the Home button is still an option).  Perhaps they just want a blank screen with 1 button that allows you user to try again?  I dunno.  <_<

Meanwhile, the Assassin’s Creed app (link below) will always crash on startup after you deny it permission and tell it to never ask again.  At least that was the behavior a few months ago.  Hmm…

   https://play.google.com/store/apps/details?id=com.ubisoft.assassin.pirates

For your info, we’re following Google’s guidelines in the link below at the very bottom of the page.  The “critical permissions” section.

   https://www.google.com/design/spec/patterns/permissions.html#permissions-denied-permissions

From there they state that it’s okay to Exit the app in that case.  But perhaps Google is looking for a screen implemented exactly as shown in their guide’s screenshot, without native alerts.  They’ve never had a problem with the way Corona-made apps was handling this before.  You may have gotten unlucky with this particular app reviewer whose being unusually harsh.  Especially since I’ve seen other featured games on Google Play get away with crashing in this case.

Hmm… I don’t have an answer to this either.  Changing this screen on Corona’s end is a major high-risk change.

Is this blocking your app from being featured?

Hi Joshua !

Well… I’m also very confused about their feedback. And yes, this is preventing my app from being featured. And to be honest, I’ve been struggling with them for weeks now and every time, it was just… really confusing.

Do you mind if I send them an email quoting you (as a Corona Staff member) ?

We (the Corona team) only show the “Settings” button option if the user denied permission *AND* checked “Never ask again”.  We have no choice but to offer a “Settings” option at that point because Android’s native permission requesting API won’t allows us to ask the user anymore.  And trapping the user with never ending alert popups would be a bad user experience (and against Google’s permission guidelines) because it prevents you from using the Back button to exit the app (although the Home button is still an option). 

Perhaps this will convince them…

Go for it.  In fact, you can tell them to feel free to contact us if they want.