I have some problems with Android Market filtering system. I have been
reading the documentation about Android Market Filters in
developer.android.com, and I suppose the problem is related with
screen or density restrictions.
The manifest of my application contains the following:
- uses-permission ACCESS_FINE_LOCATION
- uses-permission INTERNET
- uses-permission READ_PHONE_STATE
- uses-permission SEND_SMS
- uses-permission ACCESS_COARSE_LOCATION
- uses-permission ACCESS_COARSE_UPDATES
- uses-permission RECEIVE_SMS
- uses-permission ACCESS_NETWORK_STATE
- uses-permission WAKE_LOCK
- uses-permission WRITE_EXTERNAL_STORAGE
- minSdkVersion is 7
Looking to this uses permissions it is clear that Android Market will
restrict the app to those devices which don’t have either GPS, 3G/
WiFi, Telephony or SD storage.
However, I have a Motorola Xoom tablet (Android 3.1) which has all
these hardware capabilities and it is unable to see my app in the
Android Market.
I’m not declaring any supported screen by means of
element, because when the android:minSdkVersion is set to 4 or higher,
the application is considered to support all screen sizes by default.
But my application is based on API level 7 and android:xlargeScreens
attribute doesn’t appear until API level 9.
Any idea?
Thanks in advance.
Xavi Barrera Quintanilla
You can have
minSdkVersionset to 7, but build withtargetSdkVersion=9andtarget=android-9and than the application will still run on devices with api-level 7, but you can use the attributes defined in api-level 9. So you can setandroid:xlargeScreenswhile still keeping the application compatible with 2.1.The disadvantage is that now the IDE will consider anything available at api-level 9 as valid and than the application will fail at runtime if run on a device with older firmware. We work this around by doing development builds with the target set to minSdkVersion and release builds with modified manifest and target set to the version we use the attributes from.