開発者コンソール

Amazonアプリストアでサポートされているマニフェストフィルター

Amazonアプリストアでサポートされているマニフェストフィルター

AndroidManifest.xmlファイルの以下の要素を使用すると、FireデバイスおよびAmazonアプリストアを使用するAmazon以外のデバイスのフィルタリングを制御できます。使用可能なフィルターは自由に組み合わせることができます。Fireデバイスに適用されるマニフェスト要素の詳細については、デバイスフィルタリングと互換性を参照してください。

Android APIレベル(<uses-sdk>)

Amazonアプリストアでは、この要素を使用し、minSdkVersionおよびmaxSdkVersionの値に基づいてデバイスをフィルタリングします。<uses-sdk>の詳細については、Androidドキュメント内の<uses-sdk>を参照してください。

最小APIレベル要件など、Android APIレベルの詳細については、デバイスフィルタリングと互換性を参照してください。

ハードウェアパーミッション(<uses-permission>)

通常、マニフェストのパーミッションは、特定のAPIおよびサービスへのアクセスを許可または制限するために使用します。マニフェストのパーミッションの一覧については、<uses-permission>を参照してください。マニフェストのパーミッションは、ハードウェア要件の定義にも使用できます。マニフェストでハードウェアパーミッションを指定すると、アプリには基盤となるハードウェアが必要であると見なされ、その要件を満たさないデバイスは除外されます(これは暗黙のパーミッションまたは暗黙的なパーミッションと呼ばれます)。

たとえば、<uses-permission>の値がandroid.permission.ACCESS_FINE_LOCATIONの場合は、android.hardware.location.gpsのハードウェア要件が暗示され、Amazonアプリストアは、GPSハードウェアを搭載していないデバイスを除外します。"android.hardware.location.gps"を指定しandroid:required"false"に設定した<uses-feature>要素を追加すると、GPSの暗黙の要件がオーバーライドされます。

機能を暗黙に指定するパーミッションの一覧については、機能要件を伴うパーミッションを参照してください。

カテゴリー ハードウェアパーミッション 説明
Bluetooth android.permission.BLUETOOTH ペアリングされたBluetoothデバイスとの接続をアプリに許可します。
カメラ android.permission.CAMERA カメラデバイスへのアクセス権が必要です。
位置情報 android.permission.ALLOW_MOCK_LOCATION 擬似位置情報と位置情報源のステータスをテストのためにLocationManagerサービスに取り入れることを許可します。位置情報とステータスの値は、ネットワーク、GPS、その他の位置情報源によって生成された実際の位置情報およびステータス情報をオーバーライドします。
android.permission.ACCESS_LOCATION_EXTRA_COMMANDS 追加の位置情報源コマンドへのアクセスをアプリに許可します。 
android.permission.INSTALL_LOCATION_PROVIDER 位置情報源をLocation Managerにインストールすることをアプリに許可します。
android.permission.ACCESS_COARSE_LOCATION おおよその位置情報へのアクセスをアプリに許可します。 
android.permission.ACCESS_FINE_LOCATION 正確な位置情報へのアクセスをアプリに許可します。 
マイク android.permission.RECORD_AUDIO 音声の記録をアプリに許可します。 
Wi-Fi android.permission.ACCESS_WIFI_STATE Wi-Fiネットワークに関する情報へのアクセスをアプリに許可します。 
android.permission.CHANGE_WIFI_STATE Wi-Fi接続状態の変更をアプリに許可します。 
android.permission.CHANGE_WIFI_MULTICAST_STATE Wi-Fiマルチキャスト状態の変更をアプリに許可します。

ハードウェア機能とソフトウェア機能(<uses-feature>)

Amazonアプリストアがサポートするハードウェア機能とソフトウェア機能を以下に示します。属性、説明、フィルタリングルールについては、こちらのページを参照してください。 

先に述べたように、サブ機能はデフォルトで必須に設定されています(これは暗黙のパーミッションまたは暗黙的なパーミッションと呼ばれます)。この権限をオーバーライドするには、サブ機能ごとに<uses-feature>要素を追加し、それぞれのandroid:required属性を"false"に設定します。

たとえば、マニフェストに次のエントリが含まれているとしましょう。

<uses-permission android:name="android.permission.CAMERA" />

この場合は、次の2つのエントリも追加する必要があります。

<uses-feature android:name="android.hardware.camera.flash" android:required="false" />
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />
カテゴリー 機能 説明
オーディオ android.hardware.audio.low_latency アプリはサウンドの入出力時にデバイスの低レイテンシオーディオパイプラインを使用し、遅延を軽減します。
Bluetooth android.hardware.bluetooth アプリはデバイスのBluetooth無線通信機能を使用します。
android.hardware.bluetooth_le アプリはデバイスのBluetooth Low Energy無線通信機能を使用します。
カメラ android.hardware.camera アプリはデバイスのカメラを使用します。デバイスが複数のカメラをサポートしている場合、アプリは背面カメラを使用します。
android.hardware.camera.any アプリはデバイスのいずれかのカメラを使用するか、ユーザーがデバイスに接続した外部カメラを使用します。アプリが背面カメラを必要としない場合は、android.hardware.cameraではなくこの値を使用します。 
android.camera.external アプリはユーザーがデバイスに接続した外部カメラを使用します。
android.hardware.camera.autofocus サブ機能。アプリはデバイスのカメラのオートフォーカス機能を使用します。注: このサブ機能は、親機能のandroid.hardware.cameraを暗黙的に宣言します。ただし、この親機能がandroid:required="false"として宣言されている場合を除きます。また、親機能を必須に設定している場合、このサブ機能はデフォルトで必須となります。 
android.hardware.camera.flash サブ機能。アプリは、デバイスのカメラのフラッシュ機能を使用します。注: このサブ機能は、親機能のandroid.hardware.cameraを暗黙的に宣言します。ただし、この親機能がandroid:required="false"として宣言されている場合を除きます。また、親機能を必須に設定している場合、このサブ機能はデフォルトで必須となります。
android.hardware.camera.front サブ機能。アプリはデバイスの前面カメラを使用します。注: このサブ機能は、親機能のandroid.hardware.cameraを暗黙的に宣言します。ただし、この親機能がandroid:required="false"として宣言されている場合を除きます。  また、親機能を必須に設定している場合、このサブ機能はデフォルトで必須となります。
ライブ壁紙 android.software.live_wallpaper アプリはライブ壁紙を使用または提供します。ライブ壁紙をサポートするデバイスにのみ、アプリをインストールする必要があります。
位置情報 android.hardware.location アプリはGPS位置情報、ネットワークの位置情報、携帯デバイスの位置情報など、デバイスの位置を判断するための機能を1つ以上使用します。
android.hardware.location.network サブ機能。アプリは、デバイスでサポートされているネットワークベースの位置情報システムから取得した低精度の位置情報を使用します。注: このサブ機能は、親機能のandroid.hardware.locationを暗黙的に宣言します。ただし、この親機能がandroid:required="false"として宣言されている場合を除きます。
android.hardware.location.gps サブ機能。アプリは、デバイスのグローバルポジショニングシステム(GPS)レシーバーから取得した正確な位置の座標を使用します。注: このサブ機能は、親機能のandroid.hardware.locationを暗黙的に宣言します。ただし、この親機能がandroid:required="false"として宣言されている場合を除きます。
マイク android.hardware.microphone アプリはデバイスのマイクを使用します。 
NFC android.hardware.nfc アプリはデバイスの近距離無線通信(NFC)機能を使用します。
android.hardware.nfc.hce アプリはデバイスのNFCカードエミュレーション機能を使用します。
センサー android.hardware.sensor.accelerometer アプリはデバイスの加速度計から取得した動作測定値を使用します。
android.hardware.sensor.barometer アプリはデバイスの気圧計を使用します。
android.hardware.sensor.compass アプリはデバイスの磁力計(コンパス)から読み取った方向を使用します。
android.hardware.sensor.gyroscope アプリはデバイスのジャイロスコープを使用します。
android.hardware.sensor.light アプリはデバイスの光センサーを使用します。
android.hardware.sensor.proximity アプリはデバイスの近接センサーを使用します。
android.hardware.sensor.stepcounter アプリはデバイスの歩数計を使用します。
android.hardware.sensor.stepdetector アプリはデバイスの歩行検出機能を使用します。
SIP/VoIP android.software.sip アプリはデバイスのSIPサービスを使用します。SIPをサポートするデバイスにのみ、アプリをインストールする必要があります。
android.software.sip.voip サブ機能。アプリはデバイスのSIPに基づいたVoIPサービスを使用します。注: このサブ機能は、親機能のandroid.software.sipを暗黙的に宣言します。ただし、この親機能がandroid:required="false"として宣言されている場合を除きます。
テレビ android.hardware.type.television アプリはテレビにアプリのUIを表示するよう設計されています。
タッチスクリーン android.hardware.faketouch アプリがタッチスクリーンをエミュレートする(「疑似タッチ」インターフェイス)デバイスのみと互換性があることを示します。マニフェストで定義されていない場合、この機能はデフォルトで必須と暗黙的に指定または想定されます。タッチスクリーンをエミュレートするデバイスではアプリを使用できないようにするには、android:required="false"として宣言する必要があります。注: タッチスクリーンに対応したデバイスでアプリを使用できるようにするには、android.hardware.touchscreenを使用して、タッチスクリーンが必須であることを宣言する必要があります。
android.hardware.faketouch.multitouch.distinct アプリは疑似タッチインターフェイスで個別に認識される2本以上の「指」をトラッキングします。これはandroid.hardware.faketouch機能のスーパーセットです。この機能を必要に応じて宣言すると、アプリが、2本以上の指の個別トラッキングをエミュレートするデバイスのみと互換性があることを示します。 
android.hardware.faketouch.multitouch.jazzhand アプリは、疑似タッチインターフェイスで5本以上の「指」を個別にトラッキングします。これはandroid.hardware.faketouch機能のスーパーセットです。この機能を必要に応じて宣言すると、アプリが、5本以上の指の個別トラッキングをエミュレートするデバイスのみと互換性があることを示します。
android.hardware.touchscreen アプリがフリング動作など、基本的なタッチイベントよりもインタラクティブな操作に対応したデバイスのタッチスクリーン機能を使用する場合、この要素を必須に設定します。注:この機能はデフォルトで暗黙的に指定または想定されることはありません。これは基本的なandroid.hardware.faketouch機能のスーパーセットです。デフォルトでは、アプリファイルをアップロードし、アプリのターゲットを指定すると、バイナリファイルで自動的にFire TVデバイスのサポートを示されます。
android.hardware.touchscreen.multitouch アプリはピンチ操作など、デバイスの基本的な2点マルチタッチ機能を使用します。ただし、アプリはタッチを個別にトラッキングする必要はありません。これはandroid.hardware.touchscreen機能のスーパーセットです。注: これは、親機能のandroid.hardware.touchscreenを暗黙的に宣言します。ただし、この親機能がandroid:required="false"として宣言されている場合を除きます。
android.hardware.touchscreen.multitouch.distinct アプリは2点以上を個別にトラッキングするため、デバイス画面の高度なマルチポイント、マルチタッチ機能を使用します。これはandroid.hardware.touchscreen.multitouch機能のスーパーセットです。注: これは、親機能のandroid.hardware.touchscreen.multitouchを暗黙的に宣言します。ただし、この親機能がandroid:required="false"として宣言されている場合を除きます。
android.hardware.touchscreen.multitouch.jazzhand アプリは5点以上を個別にトラッキングするため、デバイス画面の高度なマルチポイント、マルチタッチ機能を使用します。これはandroid.hardware.touchscreen.multitouch.distinct機能のスーパーセットです。
USB android.hardware.usb.host アプリはUSBホストモード機能を使用します(ホストとして動作し、USBデバイスに接続します)。
android.hardware.usb.accessory アプリはデバイスのUSBアクセサリ機能を使用します(USBデバイスとして動作し、USBホストに接続します)。
Wi-Fi android.hardware.wifi アプリはデバイスの802.11ネットワーク(Wi-Fi)機能を使用します。
android.hardware.wifi.direct アプリはデバイスのWi-Fi Directネットワーク機能を使用します。

OpenGLのバージョン(<uses-feature>)

<uses-feature>要素では、OpenGLのバージョンはglEsVersion属性で指定されることがあります。

<uses-feature> android:glEsVersion="<hexadecimal integer>" />

定義されたOpenGLのバージョンがバージョン1.1(マニフェストには「0x00002101」と記載)未満の場合、Amazonアプリストアはフィルターを適用しません。OpenGLのバージョンが複数定義されている場合、Amazonアプリストアは最新のバージョンをフィルタリングに使用します。

OpenGLのテクスチャ(<supports-gl-texture>)

<supports-gl-texture>要素は、アプリでサポートされる個別のテクスチャ圧縮形式を宣言します。アプリが複数のテクスチャ圧縮形式をサポートする場合、複数の<supports-gl-texture>要素を宣言できます。 マニフェストで定義されたOpenGLのテクスチャの1つ以上をデバイスで使用できる場合、Amazonアプリストアはそのデバイスを互換性があると見なします。サポートされているテクスチャ圧縮形式の詳細については、こちらのページを参照してください。 

サポートする画面(<supports-screens>)

この要素は、アプリがサポートする画面サイズを指定するために使用されます。異なるサイズの画面に合わせてサイズを変更したときにアプリが機能しない場合には、<supports-screens>の属性を使用して、画面の小さいデバイスにアプリを配信するかどうかを制御することや、画面互換性モードを使用して大きい画面に合うようUIを拡大することができます。Amazonアプリストアで、Androidの仕様(こちらのページ)どおりにデバイスがフィルタリングされます。 

属性 説明
android:smallScreens アプリが小さい画面サイズをサポートするかどうかを示します。小さい画面は、「通常」のHVGA中密度画面よりも縦横比が小さい画面と定義されます。これは、デフォルトで"true"になっています。 
android:normalScreens アプリが「通常」画面サイズをサポートするかどうかを示します。通常これはHVGA中密度画面です。ただし、WQVGA低密度とWVGA高密度も、「通常」画面サイズと見なされます。この属性は、デフォルトで"true"になっています。
android:largeScreens アプリが大きい画面サイズをサポートするかどうかを示します。大きい画面は、「通常」画面よりもかなり大きい画面と定義されます。このデフォルト値は、実際にはAndroidのバージョンによって異なるため、この属性を明示的に宣言することを推奨します。注: <android.largeScreens>"false"に設定すると、画面互換性モードが有効になります。
android:xlargeScreens アプリが非常に大きい画面サイズをサポートするかどうかを示します。特大画面は、タブレット(またはそれより大きいデバイス)などのように、「大きい」画面よりもかなり大きい画面と定義されます。このデフォルト値は、実際にはAndroidのバージョンによって異なるため、この属性を明示的に宣言することを推奨します。注: <android.xlargeScreens>"false"に設定すると、画面互換性モードが有効になります。
android:requiresSmallestWidthDp アプリに必要な最小の「smallestWidth」を指定します。smallestWidthは、アプリのUIに使用できる画面領域の最小寸法(単位:dp)です。つまり、使用できる画面の高さと幅の最小サイズとなります。したがって、アプリと互換性があると見なされるためには、デバイスの「smallestWidth」がこの値以上であることが必要です。通常、この値は、画面の現在の向きに関係なく、レイアウトがサポートする「最小幅」になります。

互換性のある画面(<compatible-screens>)

この要素は、アプリと互換性のある、画面のサイズと密度の組み合わせを指定するために使用されます。マニフェストでは、<compatible-screens>要素の1つのインスタンスのみを使用できます。Amazonアプリストアで、Androidの仕様(<supports-gl-texture>)どおりにデバイスがフィルタリングされます。

アプリの最小画面サイズのみを設定する場合は、<supports-screens>要素を使用します。たとえば、「大きい」画面と「特大」画面のデバイスでのみ使用できるようにする場合、<supports-screens>要素を使用すると、アプリが「小さい」および「通常」画面サイズをサポートしないことを宣言できます。

属性 説明
android:screenSize=["small" | "normal" | "large" | "xlarge"] 必須。この画面設定の画面サイズを指定します。
android:screenDensity=["ldpi" | "mdpi" | "hdpi" | "xhdpi" | "480"] 必須。この画面設定の画面密度を指定します。注: 480はAmazonアプリストアでxxhdpiにマッピングされます。 

Last updated: 2023年10月2日