1

私はこの分野に不慣れで、Nexus S (CyanogenMod11 = Android Kitkat 4.4.2) を持っています。非接触型カードをエミュレートするには、HCE (ホストベース カード エミュレーション) モードを使用する必要があります。

これを達成するために従う必要がある手順とヒントに関するガイダンスはありますか? ( - シミュレートされたセキュア エレメントをプログラムする必要がありますか?クラウドに配置しますか?)

PS: 私のアプリは、NFC リーダーではなく、別の Android NfC 対応携帯電話で読み取られるため、新しいリーダー モードも使用する必要があります。

ありがとうございました。

4

1 に答える 1

3

CyanogenMod 11 より前は、CyanogenMod は独自のホストベースのカード エミュレーション機能をサポートしていました。テクノロジのフォアグラウンド ディスパッチを登録し、メソッドandroid.nfc.tech.IsoPcdAを使用してスマートカードをエミュレートできます。この API の使用方法については、IsoPcdA.transceive()Nikolay Elenkov のブログ投稿を参照してください。

ただし、CyanogenMod 11 ソース (具体的には NFC サービスの tht) を閲覧すると、Android 4.4 の公式 HCE API を支持して、この機能がバージョン 11 で削除されたようです。

公式の Android 4.4 HCE API により、アプリは Android サービスで非接触型スマートカード (ISO 14443-4 + ISO 7816-4 APDU) をエミュレートできます。このサービスは、アプリケーションの着信コマンド APDU をすべて処理し、適切な応答 APDU を生成します。このような HCE サービスを登録する方法の詳細については、公式 API ユーザー ガイドを参照してください。また、HCE サービス内で着信コマンド APDU を処理する方法に関するこの回答も参照してください。

残念ながら、この API は、低レベルの NFC スタックとして libnfc-nxp を使用するデバイスでも利用できません ( CyanogenMod 11 ソース コードのrouteAid()との空の実装を参照してください)。enableRoutingToHost()

これを要約すると、現在、CM 11 を搭載した Nexus S でホストベースのカード エミュレーションを行うことはできないようです。

于 2014-06-11T07:36:11.633 に答える