0

公式の Android Web サイト https://developer.android.com/about/versions/kitkat.htmlから、 「Android 4.4 では、ホスト カード エミュレーション (HCE) による安全な NFC ベースのトランザクションの新しいプラットフォーム サポートが導入されていることを理解しています。 Android Kit-Kat 4.4.x未満のデバイスでは HCE を使用できません。

しかし、 Android Kit-Kat 4.4.xよりも低いバージョンのデバイスで、HCE とその関連クラスを使用/含む Android アプリケーションをダウンロードできるかどうかを尋ねたいと思います。

プロジェクトのマニフェスト ファイルにはandroid:minSdkVersion="14"android:targetSdkVersion="21"がありますが、プロジェクトのマニフェストで使用される HCE SDK には と がandroid:minSdkVersion="19"ありandroid:targetSdkVersion="21"ます。私のプロジェクトは実際android:minSdkVersionに 14 または 19 に設定されていますか?

4

2 に答える 2

2

ホスト カード エミュレーション (HCE) には、ドライバー/下位レベルのフレームワークの変更が必要だったと思います。そのため、デバイスが KitKat (4.4) より前の HCE をサポートしている場合、それはおそらくデバイス メーカーが追加した特別なものであり、Marshmallow (6.0) でのみ指紋リーダー API があり、Samsung はデバイスの SDK でそれを使用するための API を持っていたのと同様です。

TL;DR: Android フレームワークによって提供される共通 API がなければ、そのようなアプリは NFC HCE 用の各ベンダーの SDK を実装する必要があり、各ベンダーの SDK をサポートするデバイスでのみ機能します。

于 2015-10-01T07:45:45.653 に答える
1

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:requiredHCE 機能の属性を設定している場合はどうなりますか?

その場合、すべての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 機能をオプションとして ) と共に使用します。

于 2015-10-07T05:39:44.463 に答える