我为所有相机手机创建了一个应用。但是,当我将应用上传到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" />
答案 0 :(得分:2)
我returns a densityDpi的DisplayMetrics.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" />