应用与Google Play商店中的设备不兼容

时间:2015-10-08 00:42:40

标签: android google-play android-manifest screen-size

我的应用仅适用于手机,而不是平板电脑。但是,有以下清单:

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

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    <uses-permission android:name="android.permission.CAMERA"/>
    <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />

    <!--
      IMPORTANT: Change "com.parse.starter.permission.C2D_MESSAGE" in the lines below
      to match your app's package name + ".permission.C2D_MESSAGE".
    -->
    <permission android:protectionLevel="signature"
                android:name="com.xxx.app.permission.C2D_MESSAGE" />
    <uses-permission android:name="com.xxx.app.permission.C2D_MESSAGE" />

    <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" />
        <!-- 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" />
    </compatible-screens>

    <application

...
...
...
        <activity
            android:name=".ParseLogInUI.ParseLoginActivity"
            android:label="@string/app_name"
            android:launchMode="singleTop">
            <!-- For more options, see https://www.parse.com/docs/android_guide#ui-login -->
            <meta-data
                android:name="com.parse.ui.ParseLoginActivity.PARSE_LOGIN_ENABLED"
                android:value="true"/>
            <meta-data
                android:name="com.parse.ui.ParseLoginActivity.PARSE_LOGIN_EMAIL_AS_USERNAME"
                android:value="true"/>
        </activity>

        <service android:name=".DealsFromOurSponsors.AlarmService">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED"/>
            </intent-filter>
        </service>
        <service android:name=".Geofences.UserTracker">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED"/>
            </intent-filter>
        </service>
        <receiver android:name=".Geofences.LocalDealsBroadcastReceiver"/>
        <receiver android:process=":remote" android:name=".DealsFromOurSponsors.Alarm"/>



        <service android:name="com.parse.PushService" />
        <receiver android:name="com.parse.ParseBroadcastReceiver">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
                <action android:name="android.intent.action.USER_PRESENT" />
            </intent-filter>
        </receiver>
        <receiver android:name="com.parse.ParsePushBroadcastReceiver"
                  android:exported="false">
            <intent-filter>
                <action android:name="com.parse.push.intent.RECEIVE" />
                <action android:name="com.parse.push.intent.DELETE" />
                <action android:name="com.parse.push.intent.OPEN" />
            </intent-filter>
        </receiver>
        <receiver android:name="com.parse.GcmBroadcastReceiver"
                  android:permission="com.google.android.c2dm.permission.SEND">
            <intent-filter>
                <action android:name="com.google.android.c2dm.intent.RECEIVE" />
                <action android:name="com.google.android.c2dm.intent.REGISTRATION" />

                <!--
                  IMPORTANT: Change "com.parse.starter" to match your app's package name.
                -->
                <category android:name="com.xxx.app" />
            </intent-filter>
        </receiver>
        <meta-data android:name="com.parse.push.notification_icon" android:resource="@mipmap/ic_launcher"/>
    </application>

</manifest>

我的几乎所有Android用户都告诉我它与他们的设备不兼容,或者他们无法在Google Play商店中找到它。然而,在我的开发者控制台中的“符合条件的设备”下,它表示支持这些设备(我有7611支持的设备)。

究竟出了什么问题?

2 个答案:

答案 0 :(得分:1)

请指定您的最低sdk版本和目标sdk版本,Google Play商店直接提供清单文件中的两个值,然后决定天气应用程序是否支持特定设备...

<uses-sdk
    android:minSdkVersion="14"
    android:targetSdkVersion="22" /

此处您的应用只能支持14个以上Api版本,如果低于14个api版本的设备尝试在Play商店中搜索,那么您的应用程序会在Play商店中显示..仅适用于14个以上的关键字API级别

答案 1 :(得分:0)

可能是因为你没有所有的密度。只需添加以下行:

<compatible-screens>
    <!-- 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="280" />
    <screen android:screenSize="small" android:screenDensity="360" />
    <screen android:screenSize="small" android:screenDensity="420" />
    <screen android:screenSize="small" android:screenDensity="480" />
    <screen android:screenSize="small" android:screenDensity="560" />
    <screen android:screenSize="small" android:screenDensity="640" />
    <!-- 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="280" />
    <screen android:screenSize="normal" android:screenDensity="360" />
    <screen android:screenSize="normal" android:screenDensity="420" />
    <screen android:screenSize="normal" android:screenDensity="560" />
    <screen android:screenSize="normal" android:screenDensity="640" />
</compatible-screens>

来源http://developer.android.com/guide/topics/manifest/compatible-screens-element.html