5

My Manifest file (permissions & support-screens) are as follow :

<uses-sdk
        android:maxSdkVersion="17"
        android:minSdkVersion="10"
        android:targetSdkVersion="17" />

    <permission
        android:name="com.ecw.healow.permission.C2D_MESSAGE"
        android:protectionLevel="signature" />

    <uses-permission android:name="my_app_package.permission.C2D_MESSAGE" />
    <!-- App receives GCM messages. -->
    <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
    <!-- GCM requires a Google account. -->
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    <!-- Keeps the processor from sleeping when a message is received. -->
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_CALENDAR" />
    <uses-permission android:name="android.permission.WRITE_CALENDAR" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <uses-feature android:name="android.hardware.camera" android:required="true"/>
    <supports-screens
        android:anyDensity="true"
        android:largeScreens="true"
        android:normalScreens="true"
        android:smallScreens="true" />

After uploading to play store, It doesn't shows nexus-7 as supported device. Any guess?

hemu
  • 3,199
  • 3
  • 44
  • 66
  • Try removing the support-screens – Arun C Apr 05 '13 at 04:13
  • 1
    Why are you setting the maxSdkVersion? minSdkVersion and targetSdkVersion are all you should need. In fact is recommended not to set it at all: http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#max – Brett Duncavage Apr 05 '13 at 04:14
  • Yeah, I think @ArunCThomas is right. There are a few values you are not setting to true in supports-screens. Also there is no need to have that at all unless you really don't want your app to run on devices with certain display sizes. – Brett Duncavage Apr 05 '13 at 04:17
  • Thanx Brett....the link is useful....I removed maxSdkVersion – hemu Apr 05 '13 at 05:08

1 Answers1

14

While the Nexus 7 has a front facing camera, per Getting Your App Ready for Jelly Bean, requiring a camera means your application will show as incompatible with the Nexus 7. Set required="false" if you want Nexus 7 compatibility.

To ensure you have a camera available before starting any camera related features, you can detect whether the device has camera hardware.

ianhanniballake
  • 191,609
  • 30
  • 470
  • 443
  • On Nexus-7 emulator, if required="true" is set then also emulator front camera pops up. But may be due to that flag set to true, goggle might not be considering the app compatible with nexus 7. Is it so ?? I tried with required="false" & camera functionality is working fine. So next time when I push new apk to play store, will it take nexus-7 as supported device ?? – hemu Apr 05 '13 at 05:26
  • 1
    Yes, if you have it set to required="false", the Nexus 7 will appear as a supported device. Do note that means other devices without cameras may also appear compatible - make sure you detect for camera hardware, just in case (as otherwise your app will crash when trying to start the camera). – ianhanniballake Apr 05 '13 at 05:36