jcrowson
jcrowson

Reputation: 4290

Publishing app - Limiting by device in Android Market

I'm about to publish my Android application on the marketplace, however I've decided to just design it for devices with normal screen sizes and with high density (The HTC Desire for example).

This application will not look right on any other device apart from those with the same spec as the HTC Desire.

I was wondering how I might be able to limit the application on the market to fit these specifications?

 <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package=""
      android:versionCode="1"
      android:versionName="1.0" android:installLocation="auto">

            <supports-screens 
                  android:smallScreens="false"
                  android:normalScreens="true" 
                  android:largeScreens="false"
                  android:xlargeScreens= "false"
                  android:anyDensity="false"
                  android:requiresSmallestWidthDp="480"
                  android:compatibleWidthLimitDp="480"
                  android:largestWidthLimitDp="480"/>

<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-sdk android:minSdkVersion="8" />

    <application android:icon="@drawable/icon" android:label="@string/app_name" android:screenOrientation="landscape">
        <activity android:name=".PhonegapScreenshotPluginActivity"
                  android:label="@string/app_name"
                  android:configChanges="orientation|keyboardHidden" android:screenOrientation="landscape">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>
</manifest>

Upvotes: 2

Views: 2301

Answers (2)

Egor
Egor

Reputation: 40193

There is also a manifest element, which can be of more use in your situation. Here's a link to the documentation page. In Manifest it will look like this:

   <compatible-screens>
    <screen android:screenSize="normal" android:screenDensity="hdpi" />
   </compatible-screens>

Hope this helps.

Upvotes: 2

Sourab Sharma
Sourab Sharma

Reputation: 2960

If your application is for Android 3.2 and higher, you can use :

                 <supports-screens 
                  android:smallScreens="false"
                  android:normalScreens="true" 
                  android:largeScreens="false"
                  android:xlargeScreens= "false"
                  android:anyDensity="true"
                  android:requiresSmallestWidthDp="480"
                  android:compatibleWidthLimitDp="480"
                  android:largestWidthLimitDp="480"/>

else you can use :

                 <supports-screens 
                  android:smallScreens="false"
                  android:normalScreens="true" 
                  android:largeScreens="false"
                  android:xlargeScreens= "false"
                  android:anyDensity="true" />

Have a look at the following urls:

http://developer.android.com/guide/topics/manifest/supports-screens-element.html

http://developer.android.com/guide/practices/screens_support.html

Also I would like to share with you following text:

What does it mean when we say normal screen?

We tell Android that we only support devices that fall into the normal screens class. Note that this doesn’t necessarily imply that our application isn’t installable anymore on other devices. It doesn’t even mean that it’s doomed to break on them, but it has other implications. We didn’t mention actual sizes in pixels or densities in dpi.

For more details, please read page 146 of http://www.manning.com/collins/AiP_sample_ch04.pdf

Upvotes: 6

Related Questions