任何未在此标签中明确声明的尺寸和密度组合都将被限制安装应用程序。
这听起来像是你想要的<compatible-screens>
。您必须列出您支持的所有可能的屏幕组合。这就是除了ldpi
,mdpi
和之外的所有内容hdpi
。
https://developer.android.com/guide/topics/manifest/compatible-screens-element
https://developer.android.com/guide/practices/screens-distribution#FilteringHandsetApps
所以这是一个好的开始:
<compatible-screens>
<screen android:screenSize="small" android:screenDensity="xhdpi"/>
<screen android:screenSize="small" android:screenDensity="xxhdpi"/>
<screen android:screenSize="small" android:screenDensity="xxxhdpi"/>
<screen android:screenSize="normal" android:screenDensity="xhdpi"/>
<screen android:screenSize="normal" android:screenDensity="xxhdpi"/>
<screen android:screenSize="normal" android:screenDensity="xxxhdpi"/>
<screen android:screenSize="large" android:screenDensity="xhdpi"/>
<screen android:screenSize="large" android:screenDensity="xxhdpi"/>
<screen android:screenSize="large" android:screenDensity="xxxhdpi"/>
<screen android:screenSize="xlarge" android:screenDensity="xhdpi"/>
<screen android:screenSize="xlarge" android:screenDensity="xxhdpi"/>
<screen android:screenSize="xlarge" android:screenDensity="xxxhdpi"/>
</compatible-screens>
文档列出了更多支持的屏幕密度值:
- 320 (xhdpi)
- 360
- 420
- 480 (xxhdpi)
- 560
- 640 (xxxhdpi)
问题是,如果您的清单中没有包含具有不同价值的设备,它将不会在应用商店中看到您的应用。例如,Sony Xperia Z5 Premium 的密度约为 800 dpi800
,除非您在清单中指定屏幕密度,否则它不会为您提供应用程序。
<screen android:screenSize="normal" android:screenDensity="800"/>
这只是我的猜测。
所以在你走这条路之前,问问自己,如果你真的需要这个。相反,如果在用户首次运行应用程序时通知用户由于非典型显示密度(或者其他原因,我真的不知道您的用例),视觉保真度可能没有预期的那么高是可以接受的。让用户决定。