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>
を参照してください。
最小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日