App showing as incompatible with Nexus 7 on Google Play, but works fine when testing?

On Friday we submitted an app for a client. During the testing process we tested on a Nexus 7 more than any other device, and it always installed and opened just fine.
Now we have noticed that from Google play we can install on most devices, but not on the Nexus 7. Instead we get an error message telling us that the app is incompatible with the device.

Is there any known reason for this?

Having looked online I have found the following:

http://stackoverflow.com/questions/11691775/why-my-app-is-not-showing-up-on-tablets-in-google-play/11745425#11745425

This suggests that a special case is needed in the Android manifest file for the Nexus 7’s screen size. I have looked at the manifest file and there is no “” field at all, so I’m not sure whether or not this is relevant.
Also I saw a post on here where someone had an issue with the "android.permission.READ_PHONE_STATE" permission, but as far I can see the manifest also has <uses-feature android:name="android.hardware.telephony" android:required="false"></uses-feature> which I presume means that it doesn’t need to have a telephony facility, but will use the permission if a phone is present?

The only permissions I have included myself are:

<br>androidPermissions =<br> {<br> "android.permission.INTERNET",<br> "android.permission.CAMERA",<br> "android.permission.WRITE_EXTERNAL_STORAGE",<br> "android.permission.READ_EXTERNAL_STORAGE"<br> },<br>

I wasn’t entirely sure that the read/write permissions were needed, but some testers had crashes when taking photos which stopped once the permissions were added - my presumption was that the app was trying to save the images somewhere it didn’t have permission to.
So…does anyone have any ideas about why this doesn’t show up in the Google Play store?

P.S. I found that someone else has mentioned the same issue on Twitter:
https://twitter.com/GrahamRanson/statuses/274519258350886912
[import]uid: 84115 topic_id: 33580 reply_id: 333580[/import]

I have also just found that someone has a similar issue with an Android app (though it doesn’t mention it being a Corona app):

http://stackoverflow.com/questions/12010383/nexus-7-support-for-android-application-manifest-assembly

It seems the camera permission is the cause, and one line in the manifest is the fix:

My understanding of that is similar to the telephony permission, if you have a camera then you will have permission, but you do not HAVE to have a camera for the app to work.

Is there any way this could be added by default to a Corona build at some point? [import]uid: 84115 topic_id: 33580 reply_id: 133475[/import]

As mentioned on twitter ( GrahamRanson ) we are interested in this as well, are we able to set Android permissions as not required? [import]uid: 119420 topic_id: 33580 reply_id: 133476[/import]

When you add the CAMERA permission to your app, the app store will assume that camera functionality is required unless you specify otherwise. You can indicate that the feature is required or not via the “uses-feature” setting in the AndroidManifest.xml file. You can set this up via Corona’s “build.settings” file as follows…
[lua]settings =
{
android =
{
usesPermissions =
{
“android.permission.CAMERA”,
},
usesFeatures =
{
{ name = “android.hardware.camera”, required = false },
{ name = “android.hardware.camera.front”, required = false },
},
},
}[/lua]
The above will allow device that do *not* have a rear or front facing camera to buy/install your app. I believe this is the setup that you want.

Also, have a look at the “build.settings” file in sample app “Media/Camera” that is included with the Corona SDK. Notice that it is set up to require the camera, which makes sense for that kind of app.

For more detail on how the “uses-feature” setting works, have a look at Google’s official documentation here…
http://developer.android.com/guide/topics/manifest/uses-feature-element.html

I hope this helps! [import]uid: 32256 topic_id: 33580 reply_id: 133576[/import]

I have also just found that someone has a similar issue with an Android app (though it doesn’t mention it being a Corona app):

http://stackoverflow.com/questions/12010383/nexus-7-support-for-android-application-manifest-assembly

It seems the camera permission is the cause, and one line in the manifest is the fix:

My understanding of that is similar to the telephony permission, if you have a camera then you will have permission, but you do not HAVE to have a camera for the app to work.

Is there any way this could be added by default to a Corona build at some point? [import]uid: 84115 topic_id: 33580 reply_id: 133475[/import]

As mentioned on twitter ( GrahamRanson ) we are interested in this as well, are we able to set Android permissions as not required? [import]uid: 119420 topic_id: 33580 reply_id: 133476[/import]

When you add the CAMERA permission to your app, the app store will assume that camera functionality is required unless you specify otherwise. You can indicate that the feature is required or not via the “uses-feature” setting in the AndroidManifest.xml file. You can set this up via Corona’s “build.settings” file as follows…
[lua]settings =
{
android =
{
usesPermissions =
{
“android.permission.CAMERA”,
},
usesFeatures =
{
{ name = “android.hardware.camera”, required = false },
{ name = “android.hardware.camera.front”, required = false },
},
},
}[/lua]
The above will allow device that do *not* have a rear or front facing camera to buy/install your app. I believe this is the setup that you want.

Also, have a look at the “build.settings” file in sample app “Media/Camera” that is included with the Corona SDK. Notice that it is set up to require the camera, which makes sense for that kind of app.

For more detail on how the “uses-feature” setting works, have a look at Google’s official documentation here…
http://developer.android.com/guide/topics/manifest/uses-feature-element.html

I hope this helps! [import]uid: 32256 topic_id: 33580 reply_id: 133576[/import]