为什么我的应用没有显示在Google Play平板电脑上?

我刚刚发布了适用于手机和平板电脑的应用,但未在Google Play中显示适用于平板电脑的应用。

检查Nexus 7和华硕eeeePad

这是我在我的清单文件中

<compatible-screens>
    <!--no small size screens -->

    <!--Only hdpi and xhdpi for normal size screens -->
    <screen android:screenSize="normal" android:screenDensity="mdpi" />
    <screen android:screenSize="normal" android:screenDensity="hdpi" />
    <screen android:screenSize="normal" android:screenDensity="xhdpi" />

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

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

使用sdk标签

<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="11" />

权限

<uses-permission android:name="com.android.vending.BILLING" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.BROADCAST_STICKY" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<permission android:name="com.myapp.something.permission.C2D_MESSAGE" android:protectionLevel="signature" />

在明确地将uses-feature标签添加到false后,它开始出现在华硕eeeePad平板电脑上,但仍未出现在nexus 7中。以下是我在开发人员控制台中看到的内容

此应用程序仅适用于具有这些功能的设备,如应用程序清单中所定义。 屏幕密度: LARGE,MDPI LARGE,HDPI LARGE,LDPI LARGE,XHDPI XLARGE,MDPI XLARGE,HDPI XLARGE,LDPI XLARGE,XHDPI NORMAL,MDPI NORMAL,HDPI NORMAL,XHDPI所需的设备功能

android.hardware.screen.portrait
android.hardware.touchscreen

最后,在<compatible-screens>标记中为Nexus 7添加了一个特殊情况。 由于Nexus 7具有tvdpi密度

<compatible-screens>
    <!--no small size screens -->


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

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

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

    <!-- Special case for Nexus 7 -->
    <screen android:screenSize="large" android:screenDensity="213" />

</compatible-screens>

更新:

对于xxhdpi设备,可以使用480作为整型值

     <screen android:screenSize="normal" android:screenDensity="480" />
     <screen android:screenSize="large" android:screenDensity="480" />
     <screen android:screenSize="xlarge" android:screenDensity="480" />`

此页面标识您的问题。

当您使用<uses-feature>而不是<uses-permission> ,您的应用程序不会被市场过滤掉,但希望您在代码级别处理不支持该功能的设备。

对于上面那个页面中的任何权限,您可以通过在<uses-feature>元素中显式声明隐含的特性,并使用android:required="false"属性来禁用基于隐含特性的过滤。 例如,要禁用基于CAMERA许可的任何过滤,可以将此声明添加到清单文件中:

<uses-feature android:name="android.hardware.camera" android:required="false" />

但是,当您指定<uses-permission> ,所有无权访问该功能的设备都将被过滤。


我相信关键在于你的权限。 通过说你的应用程序使用RECEIVE_SMSREAD_PHONE_STATE谷歌Play使用的是过滤掉不能做的那些事(片)设备,因为它认为你的应用程序需要为了工作使用这些权限。 根据android开发人员网站:

“为了防止这些应用程序无意中出现,Google Play假定某些硬件相关权限表示默认情况下需要基础硬件功能,例如,使用蓝牙的应用程序必须在元素中请求BLUETOOTH权限 - 对于旧版应用程序,Google Play假定权限声明意味着应用程序需要底层的android.hardware.bluetooth功能,并根据该功能设置过滤。“

另外,看看这个:

电话CALL_PHONE android.hardware.telephony CALL_PRIVILEGED android.hardware.telephony MODIFY_PHONE_STATE android.hardware.telephony PROCESS_OUTGOING_CALLS android.hardware.telephony READ_SMS android.hardware.telephony RECEIVE_SMS android.hardware.telephony RECEIVE_MMS android.hardware.telephony RECEIVE_WAP_PUSH android.hardware.telephony SEND_SMS android.hardware.telephony WRITE_APN_SETTINGS android.hardware.telephony WRITE_SMS android.hardware.telephony

你有RECEIVE_SMSREAD_PHONE_STATE ,让您自动拥有android.hardware.telephony 。 你可以通过这样做来解决

<uses-feature android:name="android.hardware.telephony" android:required="false" />

所有这些在这里都有更深入的解释。

链接地址: http://www.djcxy.com/p/68971.html

上一篇: Why my App is not showing up on tablets in Google Play?

下一篇: Google Play app description formatting