为什么我的应用没有显示在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_SMS
和READ_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_SMS
和READ_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?