2

我想上传一个应用程序,它应该只适用于智能手机(应用程序需要功能才能开始通话,所以我想排除平板电脑......)

我读了 Googles Supporting Multiple Screens and compatible-screens。我找到了supported-screens,但该android:largestWidthLimitDp属性在“API13”中可用,我从“API10”开始。

有一些较新的设备(Xperia Z、Galaxy S4 和 HTC One)使用drawable-xxhdpi图形并且具有类似于平板电脑的屏幕分辨率。

问题:此清单声明是否仅适用于智能手机,包括新智能手机?

 <compatible-screens>
    <!-- all small size screens -->
    <screen android:screenSize="small" android:screenDensity="ldpi" />
    <screen android:screenSize="small" android:screenDensity="mdpi" />
    <screen android:screenSize="small" android:screenDensity="hdpi" />
    <screen android:screenSize="small" android:screenDensity="xhdpi" />
    <!-- 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" />

    <!-- support for Xperia Z, Galaxy S4 and HTC One -->
    <screen android:screenDensity="480" android:screenSize="normal" /> 
    <screen android:screenDensity="480" android:screenSize="large" /> 
</compatible-screens>
4

4 回答 4

7

如果您的应用需要能够拨打电话。为什么不过滤电话功能?

<uses-feature android:name="android.hardware.telephony" android:required="true" />
于 2013-10-24T13:22:10.597 回答
2

根据<uses-feature> http://developer.android.com/guide/topics/manifest/uses-feature-element.html文档,拥有CALL_PHONE权限的简单事实(如果您正在拨打电话,您就拥有)意味着android.hardware.telephony要求,即有效地过滤掉任何不支持电话的设备。

另一方面,限制屏幕尺寸/密度可能会排除不存在的设备,要求您不时更新您的应用程序。我不建议这样做。

于 2013-10-24T13:33:27.133 回答
0

@pocmo 是对的,但您也应该添加

<supports-screens
    android:anyDensity="true"
    android:largeScreens="false"
    android:normalScreens="true"
    android:resizeable="false"
    android:smallScreens="false"
    android:xlargeScreens="false" />

到您的清单文件。android:largeScreens="false" 和 xlargeScreens="false" 将从列表中删除平板电脑 7" 和 10"

于 2013-10-24T13:25:30.177 回答
0

看看这个官方链接声明应用程序仅适用于手机:

<manifest ... >
    <compatible-screens>
        <!-- all small size screens -->
        <screen android:screenSize="small" android:screenDensity="ldpi" />
        <screen android:screenSize="small" android:screenDensity="mdpi" />
        <screen android:screenSize="small" android:screenDensity="hdpi" />
        <screen android:screenSize="small" android:screenDensity="xhdpi" />
        <!-- 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" />
    </compatible-screens>
    ...
    <application ... >
        ...
    <application>
</manifest>

编辑

尝试添加:

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

或者

<screen android:screenDensity="480" android:screenSize="normal" />
于 2013-10-24T13:28:47.840 回答