web-dev-qa-db-ja.com

Androidアプリはタブレットでは利用できません

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

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

編集:私はあなたが提案したようにしたが、ここに結果があります:

enter image description here

さらに詳しく説明すると、通常の人がタブレットと呼ぶデバイスではなく、通常の人がスマートフォンと呼ぶデバイスでアプリを実行する必要があります...例: 「GalaxyNote2」で実行する必要がありますが、「GalaxyTab」では実行できません

[〜#〜]解決済み[〜#〜] @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より大きいターゲットを選択

25
aveschini

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>

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


[〜#〜]更新[〜#〜]

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

第二に、以下に関して:

普通の人がタブレットと呼ぶデバイスではなく、普通の人がスマートフォンと呼ぶデバイスでアプリを実行する必要があります...例: 「GalaxyNote2」で実行する必要がありますが、「GalaxyTab」では実行できません。

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

地球上には約80億人の「普通の人々」がいます。あなたは彼らの一人一人にインタビューし、ギャラクシーノート2が何であるかを彼らに尋ねることを歓迎します。電話を言う人もいます。タブレットと言う人もいます。 「ファブレット」と言う人もいますが、これは役に立ちません。一部の人はあなたを家から追い出し、あなたが発光する悪魔を彼らの真ん中に連れてきたと主張します(これも役に立たず、投げるのに便利な石があると痛みを伴うかもしれません)。

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

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

例えば:

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

  • 「画面サイズがこれよりも小さく、最小の辺が何インチもあるすべてのデバイスに同梱したいと思います。

26
CommonsWare

マニフェストファイルの使用サポート画面タグは間違ったメソッドです。常に<compatible-screens>を使用して、アプリをタブレットで使用できないようにします。

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

注意

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