Amazonアプリストアでサポートされているマニフェストフィルター
AndroidManifest.xmlファイルの以下の要素を使用すると、FireデバイスおよびAmazonアプリストアを使用するAmazon以外のデバイスのフィルタリングを制御できます。使用可能なフィルターは自由に組み合わせることができます。Fireデバイスに適用されるマニフェスト要素の詳細については、デバイスフィルタリングと互換性を参照してください。
- Android APIレベル(<uses-sdk>)
- ハードウェアパーミッション(<uses-permission>)
- ハードウェア機能とソフトウェア機能(<uses-feature>)
- OpenGLのバージョン(<uses-feature>)
- OpenGLのテクスチャ(<supports-gl-texture>)
- サポートする画面(<supports-screens>)
- 互換性のある画面(<compatible-screens>)
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:require
をfalse
に設定すると、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(マニフェストには「0x00002101」と記載)未満の場合、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がマッピングされます。 |