I have an app which has been deployed to Play and is compatible with any device running 2.1 or later; no special restrictions or requirements defined in AndroidManifest.xml.
There have been several complaints from users trying to install the app via Google Play but getting messages that it is not compatible. In all of these cases sideloading the app works perfectly.
Digging a little deeper into the problem it appears that in all cases, the people reporting the problem are using a device that did not ship with Google Play installed. IE. the device probably failed Google's CTS.
Having said that, they are able to install other apps via Google Play but not ours. Again, sideloading our app onto these devices works fine. Does anybody know why this might be? I assume it must be something I am doing incorrectly in AndroidManifest.xml but I see nothing suspicious.
EDIT: Here's the AndroidManifest.xml, altered to protect the names of the innocent:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.foo.bar"
android:versionCode="1"
android:versionName="@string/global_app_version">
<uses-sdk android:minSdkVersion="7" android:targetSdkVersion="10"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application android:label="@string/global_app_short_name" android:icon="@drawable/app">
<activity android:name=".HomeActivity"
android:theme="@android:style/Theme.Black.NoTitleBar">
<intent-filter android:label="@string/global_app_short_name">
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity android:name=".AActivity"
android:theme="@android:style/Theme.Black.NoTitleBar">
<intent-filter android:label="@string/global_app_short_name">
<action android:name="android.intent.action.VIEW"/>
</intent-filter>
</activity>
<activity android:name=".BActivity"
android:theme="@android:style/Theme.Black.NoTitleBar">
<intent-filter android:label="@string/global_app_short_name">
<action android:name="android.intent.action.VIEW"/>
</intent-filter>
</activity>
<activity android:name=".CActivity"
android:launchMode="singleTask"
android:theme="@android:style/Theme.Black.NoTitleBar"
android:windowSoftInputMode="stateHidden">
<intent-filter android:label="@string/global_app_short_name">
<action android:name="android.intent.action.VIEW"/>
</intent-filter>
</activity>
<activity android:name=".DActivity"
android:launchMode="singleTask"
android:theme="@android:style/Theme.Black.NoTitleBar">
<intent-filter android:label="@string/global_app_short_name">
<action android:name="android.intent.action.VIEW"/>
</intent-filter>
</activity>
<activity android:name=".EActivity"
android:theme="@android:style/Theme.Black.NoTitleBar">
<intent-filter android:label="@string/global_app_short_name">
<action android:name="android.intent.action.VIEW"/>
</intent-filter>
</activity>
<activity android:name=".FActivity"
android:theme="@android:style/Theme.Black.NoTitleBar">
<intent-filter android:label="@string/global_app_short_name">
<action android:name="android.intent.action.VIEW"/>
</intent-filter>
</activity>
<!-- This activity is invoked whenever an xxx is opened -->
<activity android:name=".GActivity"
android:theme="@android:style/Theme.Black.NoTitleBar">
<intent-filter android:label="@string/global_app_short_name">
<action android:name="android.intent.action.VIEW"/>
<action android:name="android.intent.action.EDIT"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:mimeType="application/xxx"/>
<data android:mimeType="application/yyy"/>
<data android:mimeType="application/zzz"/>
<data android:mimeType="application/aaa"/>
<data android:mimeType="application/bbb"/>
</intent-filter>
</activity>
</application>
</manifest>