web-dev-qa-db-ja.com

Androidマニフェストをタブレットに制限

ビジネス上の理由から、Androidアプリケーションを厳密にタブレットデバイスに限定します。

現時点では、アプリをHoneycombデバイスに制限することができます:

Android:minSdkVersion="11"

ただし、Android(アイスクリームサンドイッチ))の次のバージョンでは、OSのタブレットバージョンと電話バージョンの両方で、バージョン番号が大きくなります。

タブレットデバイスに制限するために指定できるマニフェスト属性はありますか? (ハニカムまたはそれ以降のタブレットバージョン)

28
Daniel Delaney

あなたはこのリンクが素晴らしいでしょう: http://Android-developers.blogspot.com/2011/09/preparing-for-handsets.html

私たちが「タブレット」と呼ぶものの問題は、定義がevryoneと同じではないことです。 Archos 5ITは、電話と同じサイズですが、「タブレット」の名前が付いています。 Dell Streakでも同じ問題。

私は個人的にそれをタブレットとは呼びません。

したがって、7インチまたは5インチのデバイスに制限する場合は、xlargeScreensおよびlargeScreensを使用する必要があります。

(HTCフライヤーにもバグがあります-largeScreensを使用する7インチ-HTCのせいです)

マニフェストで画面サイズを使用すると、ニーズに合うと思います。

<supports-screens Android:smallScreens="false"
                  Android:normalScreens="false"
                  Android:largeScreens="false"
                  Android:xlargeScreens="true"
                  Android:anyDensity="true"
                  Android:requiresSmallestWidthDp="600"
                  Android:compatibleWidthLimitDp="integer"
                  Android:largestWidthLimitDp="integer"/>

enter image description here

45
Waza_Be
              Android:requiresSmallestWidthDp="600"
              Android:compatibleWidthLimitDp="integer"
              Android:largestWidthLimitDp="integer"

Androidマーケットは現在、フィルタリングのためにこの属性をサポートしていません)(公式ガイドより)。

サポートスクリーンラージとxラージを使用すると、次の2つのオプションがあります。

  • タブレットではない大画面デバイスを手動で市場から除外する(+500 ...)

  • プログラムで幅を測定できます。幅が600未満の場合は、アプリに互換性がないとユーザーに伝えます。

その間、マーケットがAndroid:requiresSmallestWidthDp = "600"でフィルターするのを待つ必要があります...

2
AntPachon

ドキュメントを確認してください- http://developer.Android.com/guide/practices/screens-distribution.html

<manifest ... >
<supports-screens Android:smallScreens="false"
                  Android:normalScreens="false"
                  Android:largeScreens="true"
                  Android:xlargeScreens="true"
                  Android:requiresSmallestWidthDp="600" />
...
<application ... >
    ...
</application>
2
gmjordan
0
nzkevin