4

タブレットでのみアプリを実行したい。だから私はマニフェストファイルで以下のコードを宣言しました:

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

しかし、Samsung Galaxy S2電話(hdpi 480x800)を接続すると、EclipseのAndroidデバイスチューザーに表示されたままになります。

7インチと10インチのタブレットのみをサポートしたい。どうやってやるの?

4

2 に答える 2

3

こちらをご覧ください。

あなたが書いたマニフェストの制限は、この目的には正確ではありません:

これを使って:

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

これは、アプリの画面サイズのサポートを 2 つの異なる方法で説明しています。

これは、アプリが従来タブレットではない画面サイズのバケット「小」、「標準」、および「大」をサポートしないことを宣言します

アプリには、少なくとも 600 dp 幅の最小使用可能領域を備えた画面サイズが必要であると宣言しています

最初の手法は、Android 3.1 以前を実行しているデバイス用です。これらのデバイスは、一般化された画面サイズ バケットに基づいてサイズを宣言するためです。requiresSmallestWidthDp 属性は、Android 3.2 以降を実行しているデバイス用であり、アプリが密度に依存しないピクセルの最小数に基づいてサイズ要件を指定する機能が追加されました。この例では、アプリは 600 dp の最小幅要件を宣言しています。これは通常、7 インチ以上の画面を意味します。

もちろん、さまざまな画面サイズでデザインがどれだけうまく機能するかに基づいて、サイズの選択は異なる場合があります。たとえば、デザインが 9 インチ以上の画面でのみ適切に機能する場合は、最小幅 720 dp が必要になることがあります。

問題は、requiresSmallestWidthDp 属性を使用するには、Android 3.2 以降に対してアプリケーションをコンパイルする必要があることです。古いバージョンはこの属性を理解せず、コンパイル時にエラーが発生します。最も安全なのは、minSdkVersion に設定した API レベルに一致するプラットフォームに対してアプリを開発することです。リリース候補をビルドするための最終的な準備をしているときに、ビルド ターゲットを Android 3.2 に変更し、requiresSmallestWidthDp 属性を追加します。3.2 より古いバージョンの Android では、その XML 属性が単に無視されるため、実行時にエラーが発生するリスクはありません。

于 2013-07-10T12:28:05.520 に答える
0

アプリが電話にインストールされないようにフィルター処理することはできません (Eclipse 経由、または外部ソースからダウンロードされた場合)。この設定により、アプリが Google Play マーケットから電話にダウンロードされるのを制限します。

于 2013-10-28T10:22:43.077 に答える