views:

135

answers:

3

I have an application published in the Android Market. Its target is 1.6 and its minSdkVersion is 1.5. The only persmission it uses is INTERNET. My Manifest file looks like this:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="XXX"
      android:versionCode="1"
      android:versionName="1.0">
    <application
        android:label="@string/app_name"
        android:icon="@drawable/icon">
        <meta-data android:name="android.app.default_searchable"
            android:value="XXX" />
        <activity android:name="XXX"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name="XXX">
            <intent-filter>
                <action android:name="android.intent.action.SEARCH"></action>
                <category android:name="android.intent.category.DEFAULT"></category>
            </intent-filter>
            <meta-data android:name="android.app.searchable"
                android:resource="@xml/searchable" />
        </activity>
        <activity android:name="XXX">
            <intent-filter>
                <action android:name="XXX" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
        <activity
            android:name="XXX"
            android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"
            android:screenOrientation="landscape"
        />
        <activity android:name=".Favorites" />
        <provider
            android:name="SearchSuggestions"
            android:authorities="XXX"
        />
    </application>
    <uses-sdk android:minSdkVersion="3" />
    <uses-permission android:name="android.permission.INTERNET"></uses-permission>
</manifest>

(I XXXed stuff I can't show)

I recently got an email from a user saying the application doesn't show up in the Market on an HTC Wildfire. I looked it up and the Wildfire is a QVGA (LDPI, 240x320) device running Android 2.1. The app does appear for MDPI and HDPI devices. Also, I can start up a QVGA 2.1 emulator and install the application without any problems.

What is causing this?

A: 

the app doesn't show up in the market, then may be it is not a "app-problem"...

did you check with that user how he access the market and search on your app?

you also can give the full url to your app and ask the user to open it on his phone

the url could be:

market://details/?id=com.xxx.xxx (your activity package)
Andy Lin
Yes, I have a QR code that points to a `market://details` URL. The user said that when they scan the QR code they get an app not found error.
Felix
+5  A: 

Your application does not support QVGA, by which I mean it lacks a <support-screens> element stating that it supports QVGA and it has a minSdkVersion of 3. Android applications that do not state they support QVGA are blocked from QVGA devices on the Market, under the assumption that GUIs will not scale smaller very well automatically. Simply add the appropriate <supports-screens> element to resolve your problem.

CommonsWare
hmm, i found the following link that talks about QVGA, i didn't realize that before...http://developer.android.com/guide/practices/screens_support.html
Andy Lin
+1 I added `<support-screens>`, I'm now waiting for an email from the user who reported this issue to tell me whether it works or not. I'll mark this answer as accepted when I'll get an answer (or in a couple of days)
Felix
+1  A: 

Another common cause of application absence (or in some cases disappearance), is the use of the copy protection flag on publication. If you set this checkbox, applications will not appear on phones running "unofficial" versions of the operating system. More information in this thread.

Thomas H
Thanks, but that is not my problem. I don't have the copy protection flag checked, and the device is most probably not rooted.
Felix