32

アプリを Play ストアで公開していますが、タブレットで利用できるようにしたくありません。どうすれば実現できますか?

Android の開発者コンソール内のすべてのタブレットを手動で除外したくはありませんが、アプリケーションをスマートフォンでのみ実行する必要があります。

編集:あなたが提案したとおりにしましたが、結果は次のとおりです。

ここに画像の説明を入力

さらに説明すると、通常の人がタブレットと呼ぶデバイスではなく、通常の人がスマートフォンと呼ぶデバイスでアプリを実行する必要があります...たとえば、「Galaxy Note 2」では実行する必要がありますが、「Galaxy Tab」では実行する必要はありません

解決済み@CommonsWareに感謝:

マニフェストに次のタグを設定する必要がありました。

<uses-sdk android:minSdkVersion="9" android:targetSdkVersion="9"/>

と:

<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" />
</compatible-screens>

そして、次のことを行います: プロジェクトを右クリック -> プロパティ -> android -> 8 より大きいターゲットを選択

4

4 に答える 4

28

http://developer.android.com/guide/practices/screens-distribution.html#FilteringHansetApps

...要素を使用して、画面サイズと密度の組み合わせに基づいてアプリケーションの配布を管理できます。Google Play などの外部サービスは、この情報を使用してアプリケーションにフィルタリングを適用し、互換性を宣言した画面構成を持つデバイスのみがアプリケーションをダウンロードできるようにします。

そのページのサンプル<compatible-screens>要素:

<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>

xxhdpiただし、現在出荷されているデバイス (Droid DNA、Xperia Z、HTC Butterfly など)の密度の線を追加することもお勧めします。


アップデート

まず、ビルド エラーに関してですが、 elementのドキュメントを<compatible-screens>読むと、それが API レベル 9 で追加されたことがわかり、奇妙な理由でそれより古いビルド ターゲットが設定されています。

第二に、以下に関して:

通常の人がタブレットと呼ぶデバイスではなく、通常の人がスマートフォンと呼ぶデバイスでアプリを実行する必要があります...たとえば、「Galaxy Note 2」では実行する必要がありますが、「Galaxy Tab」では実行する必要はありません

これは不可能です。なぜなら、何をするかについて具体的な定義がなく、アプリを出荷したくないからです。

地球上には約 80 億人の「普通の人」がいます。それぞれにインタビューして、Galaxy Note 2 についてどう思うか尋ねてみてください。電話と言う人もいます。タブレットと言う人もいます。「ファブレット」と言う人もいますが、これは役に立ちません。あなたが発光する悪魔を彼らの中に連れてきたと主張して、あなたを家から追い出す人もいます(これも役に立たず、石を投げるのに便利な場合は苦痛になるかもしれません).

将来のある時点で、デバイスを出荷したくないことの科学的定義を思いついた場合は、StackOverflow に新たな質問をしてください。「科学的な定義」とは、アプリをオンにして何をしたくないかを判断するために、すべてのデバイスのすべての人が普遍的に適用できるアルゴリズムを意味します。

(「すべての人」とは、あなたを悪魔屋と見なす可能性のある人を除外していることに注意してください)

例えば:

  • 「画面サイズに関係なく、テレフォニー機能を備えたすべてのデバイスで出荷したい」

  • 「私は、画面サイズが最小の何インチよりも小さいすべてのデバイスで出荷したいと考えています。

于 2013-03-21T12:49:27.530 に答える
7

マニフェスト ファイルで Support screen タグを使用する方法が間違っています。<compatible-screens>アプリをタブレットで使用できないようにするために常に使用します。

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

注意

上記のシナリオ (アプリケーションが大画面に対応していない場合) で要素を使用し、大画面サイズ属性を「false」に設定すると、Google Play などの外部サービスはフィルタリングを適用しません。アプリケーションは引き続き大きな画面で使用できますが、実行時に画面に合わせてサイズが変更されることはありません。代わりに、システムはハンドセットの画面サイズをエミュレートします (約 320 dp x 480 dp。詳細については、画面互換モードを参照してください)。アプリケーションが大きな画面にダウンロードされないようにしたい場合は、@CommonsWareの提案に従って使用してください。

タグを使用してアプリを除外し、タブレットで実行します。

<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>
于 2013-03-21T12:49:18.800 に答える
-2

3gまたは4gサービスに何らかのチェックを追加してみてください。それはほとんどのタブレットを除外しますが、おそらくすべてのタブレットを除外するわけではありません。

于 2013-03-21T12:52:27.640 に答える