문제

Im trying to create Android manifest that Google Play will show to Samsung Galaxy S4, HTC One and so on since current one doesn't list those in compatible devices list.

I did search Stack Overflow, but all advices here didn't help me. Below is manifest that I am using for our app...

We tried also to remove complete <compatible-screens> and leave only <support-screens> but still no-go...

Thanks in advance

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.application.testapp"
android:versionCode="4"
android:versionName="1.01c"
android:installLocation="auto" >
<uses-sdk android:minSdkVersion="8"  android:targetSdkVersion="17"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<supports-screens 
android:anyDensity="true" 
android:largeScreens="true"
android:normalScreens="true" 
android:smallScreens="true"
android:xlargeScreens="true" 
android:resizeable="true" /> 
<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" />
<screen android:screenSize="small" android:screenDensity="480" />
<!-- 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" />
<screen android:screenSize="normal" android:screenDensity="480" />
<!-- all large size screens -->
<screen android:screenSize="large" android:screenDensity="ldpi" />
<screen android:screenSize="large" android:screenDensity="mdpi" />
<screen android:screenSize="large" android:screenDensity="hdpi" />
<screen android:screenSize="large" android:screenDensity="xhdpi" />
<screen android:screenSize="large" android:screenDensity="480" />
<!-- all xlarge size screens -->
<screen android:screenSize="xlarge" android:screenDensity="ldpi" />
<screen android:screenSize="xlarge" android:screenDensity="mdpi" />
<screen android:screenSize="xlarge" android:screenDensity="hdpi" />
<screen android:screenSize="xlarge" android:screenDensity="xhdpi" />
<screen android:screenSize="xlarge" android:screenDensity="480" />
</compatible-screens>
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" android:theme="@android:style/Theme.Light">
<uses-library android:name="com.google.android.maps"/> 
<activity 
android:name=".Main"
android:label="@string/app_name" android:theme="@android:style/Theme.Light.NoTitleBar" android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity android:name=".SplashScreen" android:theme="@android:style/Theme.Light.NoTitleBar.Fullscreen" android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN"></action>
<category android:name="android.intent.category.LAUNCHER"></category>
</intent-filter>
</activity>
<activity android:name=".ActivityProducst" android:theme="@android:style/Theme.Light.NoTitleBar" android:screenOrientation="portrait"/>
<activity android:name=".ActivityDetails" android:theme="@android:style/Theme.Light.NoTitleBar" android:screenOrientation="portrait"/>
<activity android:name=".ActivityNews" android:theme="@android:style/Theme.Light.NoTitleBar" android:screenOrientation="portrait"/>
<activity android:name=".ActivityImage" android:theme="@android:style/Theme.Light.NoTitleBar" android:screenOrientation="portrait"/>
<activity android:name=".ActivityAbout" android:theme="@android:style/Theme.Light.NoTitleBar" android:screenOrientation="portrait"/>
</application>
</manifest>
도움이 되었습니까?

해결책

in my app i use this manifest (i changed the package and activity names):

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

    <uses-sdk android:minSdkVersion="7" 
              android:targetSdkVersion="18"/>

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

    <application 
        android:icon="@drawable/ic_launcher" 
        android:label="@string/app_name">

        <activity
            android:label="@string/app_name"
            android:name="com.blabla.Activity"
            android:configChanges="orientation" >

            <intent-filter >
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>

        </activity>

        <activity
            android:label="@string/app_name"
            android:name="com.blabla.Optionen" >
        </activity>

    </application>
</manifest>

And the Google Play store says that it is compatible with > 4000 devices, HTC One an SGS4 are included.

I hope i understand your question right.

다른 팁

You can do this configurations on Android Developer Console, which will publish the app to only the devices you select.

I hope you are looking for this,

Change this in Manifest

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

Only, this won't help. You want different image sizes, different layouts for different resolutions.

Edit:

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

You have to add differnt folder for different layout in res folder --> hdpi,mdpi,ldpi and for large screens you xhdpi(for Tablet) and large-hdpi or xlarge (for NXzoom). and also set Images and textsize different in different layout as per screensize.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top