My app is designed specifically for handsets, but when I try to upload the app to market it shows that my app is visible to tablets (xlarge) too. I intentionally don’t want my app to be displayed in market if accessed from tablets.
I tried playing around with minSdkVersion and targetVersion support and also elements.
I also tried using
<manifest ... >
<compatible-screens>
<!-- all small size screens -->
<screen android:screenSize="small" android:screenDensity="ldpi" />
<screen android:screenSize="small" android:screenDensity="mdpi" />
<screen android:screenSize="small" android:screenDensity="hdpi" />
<screen android:screenSize="small" android:screenDensity="xhdpi" />
<!-- all normal size screens -->
<screen android:screenSize="normal" android:screenDensity="ldpi" />
<screen android:screenSize="normal" android:screenDensity="mdpi" />
<screen android:screenSize="normal" android:screenDensity="hdpi" />
<screen android:screenSize="normal" android:screenDensity="xhdpi" />
</compatible-screens>
...
<application ... >
...
<application>
</manifest>
But I get an error:
Multiple annotations found at this line:
– error: No resource identifier found for attribute ‘screenDensity’ in package
‘android’
– error: No resource identifier found for attribute ‘screenSize’ in package
‘android’
What am I missing?
You should use market filters to specify exactly those things your application really needs. If the device needs to be a cellphone, add
<uses-feature android:name="android.hardware.telephony"/>Filtering out tablets by specifying compatible screen sizes makes no sense. See <uses-feature> for the list of hardware features. Don’t simply add elements just for the sake of filtering, the manifest should specify what the application requires in order to work.