为什么HTC One在谷歌播放中不适用于我的应用程序

时间:2013-09-13 16:41:18

标签: android

我为所有相机手机创建了一个应用。但是,当我将应用上传到Play商店时, HTC One 会列为不支持的设备。因此HTC One用户无法安装该应用程序。

此处还有一些不支持的设备 Sony Xperia Z,HTC One和三星Galaxy S4。

我的一些清单:

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

<compatible-screens>

    <!-- all small size screens -->
    <screen
        android:screenDensity="ldpi"
        android:screenSize="small" />
    <screen
        android:screenDensity="mdpi"
        android:screenSize="small" />
    <screen
        android:screenDensity="hdpi"
        android:screenSize="small" />
    <screen
        android:screenDensity="xhdpi"
        android:screenSize="small" />

    <!-- all normal size screens -->
    <screen
        android:screenDensity="ldpi"
        android:screenSize="normal" />
    <screen
        android:screenDensity="mdpi"
        android:screenSize="normal" />
    <screen
        android:screenDensity="hdpi"
        android:screenSize="normal" />
    <screen
        android:screenDensity="xhdpi"
        android:screenSize="normal" />

</compatible-screens>

<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.FLASHLIGHT" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

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

3 个答案:

答案 0 :(得分:2)

returns a densityDpiDisplayMetrics.DENSITY_XXHIGH和Configuration.SCREENLAYOUT_SIZE_NORMAL。因此,您必须将这些设置添加到清单中。 HTC One和Xperia Z可能具有与S4相同的值。

此外,最新的api版本为18.您可能需要考虑更新android:targetSdkVersion

答案 1 :(得分:1)

Play的过滤正是你在Manifest中所说的那样。由于您正在使用该元素并且仅列出ldpi-xhdpi和小型普通屏幕,因此您获得的就是这些。请注意,您需要指定您希望应用程序运行的每个配置[1]。因此,如果新设备出现,例如xxhdpi或大型甚至是尚不存在的新奇特配置,您将需要更新您的应用程序。

解决方案是找出您希望应用程序使用的设备的密度/屏幕大小,然后添加或使用该元素。或者关闭屏幕过滤功能,具有适当设计布局的应用程序应该可以在任何屏幕尺寸上运行,即使它没有针对平板电脑进行优化。

[1] http://developer.android.com/guide/topics/manifest/compatible-screens-element.html

答案 2 :(得分:0)

感谢您的回答,这有助于我解决此问题。

  

由于一些最新手机的屏幕密度(索尼Xperia Z,HTC One和   三星Galaxy S4)是xxhpdi和 android:screenDensity 这个   属性当前不接受xxhdpi作为有效值,但是你   可以改为将480指定为值,即近似值   xhdpi屏幕的阈值。

在Manifest中添加以下行并且它可以正常工作。

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