Saq*_*qib 38 android tablet 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>
Run Code Online (Sandbox Code Playgroud)
uses-sdk标签
<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="11" />
Run Code Online (Sandbox Code Playgroud)
权限
<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" />
Run Code Online (Sandbox Code Playgroud)
在明确地将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
Run Code Online (Sandbox Code Playgroud)
Saq*_*qib 40
最后为Nexus 7添加了一个带有<compatible-screens>
标签的特殊情况.由于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>
Run Code Online (Sandbox Code Playgroud)
更新:
对于xxhdpi设备,您可以使用480作为int值
<screen android:screenSize="normal" android:screenDensity="480" />
<screen android:screenSize="large" android:screenDensity="480" />
<screen android:screenSize="xlarge" android:screenDensity="480" />`
Run Code Online (Sandbox Code Playgroud)
Ero*_*rol 35
此页面标识您的问题.
当您使用<uses-feature>
而不是使用时<uses-permission>
,您的应用程序将不会被Market过滤掉,但是您希望在代码级别处理不支持该功能的设备.
对于上述页面中的任何权限,您可以通过在<uses-feature>
元素中使用android:required="false"
属性显式声明隐含功能,基于隐含功能禁用过滤.例如,要禁用基于CAMERA权限的任何过滤,您可以将此声明添加到清单文件中:
<uses-feature android:name="android.hardware.camera" android:required="false" />
Run Code Online (Sandbox Code Playgroud)
但是,在指定时<uses-permission>
,将过滤所有无权访问该功能的设备.
nin*_*nge 19
我相信密钥是在你的权限.通过说您的应用使用RECEIVE_SMS
并且READ_PHONE_STATE
Google 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" />
Run Code Online (Sandbox Code Playgroud)
所有这些都在这里进行了更深入的解释.
小智 10
我必须做所有这三件事才能让它适用于Nexus 7.一旦你上传了你的apk,你可以通过首先激活新的apk,转到产品细节并搜索支持的设备来验证设置.如果在"由于您的清单设置而不支持的设备"下找不到Nexus 7,那么您就是好的.
注意:上传apk后,Google Play会将213密度转换为tvdpi.不确定为什么不是eclipse清单工具中的一个选项...
<compatible-screens>
....
<screen android:screenSize="large" android:screenDensity="213" />
</compatible-screens>
<uses-feature android:name="android.hardware.camera" android:required="false" />
<uses-feature android:name="android.hardware.telephony" android:required="false" />
Run Code Online (Sandbox Code Playgroud)
文档指示我们避免使用
<compatible-screens>
Run Code Online (Sandbox Code Playgroud)
请参阅此处,
您应该使用
<supports-screens
android:anyDensity="true"
android:xlargeScreens="true"
android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true" />
Run Code Online (Sandbox Code Playgroud)
此页面上提供的许多其他答案也是有效的答案。我自己实现了它们。谢谢大家。
归档时间: |
|
查看次数: |
36894 次 |
最近记录: |