HCE 機能を利用するアプリケーションを KitKat 以前のデバイスにダウンロードできますか?
はい、アプリケーションandroid:minSdkVersion
で 19 未満 (Android 4.4) を指定し、アプリケーションがHCE 機能を必要としない場合 (つまり、指定しない場合)
<uses-feature android:name="android.hardware.nfc.hce" android:required="true" />
アプリケーション マニフェスト内)。
私が使用しているライブラリのいずれかがより高い値を設定している場合はどうなりandroid:minSdkVersion
ますか?
その場合、アプリケーションのビルドは失敗するはずです。android:minSdkVersion
マニフェスト マージ ツールは、アプリケーションの属性とライブラリの依存関係の属性の不一致を検出することになっていandroid:minSdkVersion
ます。ただし、特定のライブラリの SDK 要件を次のように明示的にオーバーライドすることで、これをオーバーライドできます。
<uses-sdk android:minSdkVersion="14" android:targetSdkVersion="19"
tools:overrideLibrary="package.name.of.the.library" />
これを使用すると、アプリケーションは下位の API バージョンをターゲットにすることができます。ただし、ライブラリがデバイスの API バージョンの一部ではない API 呼び出しを使用する場合、これらの呼び出しはエラー/例外につながります。
使用しているライブラリのいずれかがandroid:required
HCE 機能の属性を設定している場合はどうなりますか?
その場合、すべてのandroid:required
属性が論理ORで結合されます。したがって、1 つのマニフェストが HCE 機能が必要であることを示している場合、アプリケーション全体でその属性が必要になります。したがって、このアプリケーションは KitKat 以前のデバイスでは利用できません (たとえば、Play ストアは HCE 機能を備えたデバイスに対してのみリストを表示し、事実上 Android 4.4 以降のデバイスへの利用を制限します)。
HCE を使用するアプリケーションを KitKat 以前のデバイスで使用できるようにすることは理にかなっていますか?
これは、アプリの機能によって異なります。HCE は、KitKat より前のデバイスでは動作しません。したがって、HCE がアプリのコア コンポーネントであり、アプリがそれなしでは役に立たない場合、アプリを KitKat 以前のデバイスで使用できるようにしても意味がありません。
ただし、アプリがキットカット以前のデバイス用の他の通信メカニズム (例: インバース リーダー モード、ピアツーピア モード、QR コード/バーコード) に切り替えることができるandroid:minSdkVersion
場合、19 よりも低い (およびマークするandroid:required="false"
アプリを KitKat 以前のデバイスで利用できるようにするために、HCE 機能をオプションとして ) と共に使用します。