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


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

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

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

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

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

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

たとえば、android.permission.ACCESS_FINE_LOCATIONという値を持つ<uses-permission>android.hardware.location.gpsのハードウェア要件を暗黙的に示すと、AmazonアプリストアはGPSハードウェアを搭載していないデバイスを除外します。<uses-feature>要素をandroid.hardware.location.gpsに追加して、android:requirefalseに設定すると、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>要素を追加して、必須の設定を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.hardware.touchscreen機能を必要とします。疑似タップインターフェイスを備えたデバイスでアプリを使用できるようにしたい場合は、タッチスクリーンが必須ではないことを、<uses-feature android:name="android.hardware.touchscreen" android:required="false" />のように明示的に宣言する必要もあります。
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機能のスーパーセットです。タッチスクリーン機能にandroid:required="false"を追加すると、アプリの申請時にAPKが自動的に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ホストに接続します)。
WiFi 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(マニフェストには「0x00010001」と記載)未満の場合、Amazonアプリストアはフィルターを適用しません。OpenGLのバージョンが複数定義された場合、Amazonアプリストアは最新のバージョンをフィルタリングに使用します。

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

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

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

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

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

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

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

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

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