Android は、オフホスト カード エミュレーション用に、セキュア エレメントを使用した NFC カード エミュレーションをサポートしています。詳しくは、ホストベースのカード エミュレーションの概要をご覧ください。ただし、Android プラットフォームでは、タップ&ペイの設定で指定した優先支払いサービスが常にセキュア エレメント内のアプリと同期されるとは限りません。つまり、セキュア エレメント内の非優先支払いサービスが優先支払いサービスの代わりに使用される可能性があります。
Android 11 では、「オフホスト支払い同期」機能により、タップ&ペイの支払い設定、非接触フロントエンド(CLF)のルーティング設定、セキュア エレメント内のアプリの選択状態を同期するためのメカニズムが提供されます。
次の図は、オフホスト支払い同期機能の設計アーキテクチャを示しています。
実装
オフホスト支払い同期機能をデバイスに実装するには、NCI 2.0 標準をサポートする NFC コントローラを搭載し、Android オープンソース プロジェクトの NFC フレームワークと Open Mobile API(OMAPI)フレームワークを使用する必要があります。
フレームワーク API
オフホスト支払い同期を実装するには、Android オープンソース プロジェクトにある次のフレームワーク API を使用します。
getAidsForPreferredPaymentService()
: 優先支払いサービスの登録済み AID を取得します。getRouteDestinationForPreferredPaymentService()
: 優先支払いサービスのルートの宛先を取得します。getDescriptionForPreferredPaymentService()
: 優先支払いサービスの、ユーザーに表示される説明を返します。android.permission.NFC_PREFERRED_PAYMENT_INFO
(権限): アプリが NFC 優先支払いサービスの情報を受け取ることを許可します。android.nfc.action.PREFERRED_PAYMENT_CHANGED
(ブロードキャスト アクション): 優先支払いサービスが変更された場合に通知するためのインテント。
検証
オフホスト支払い同期機能の実装を検証するには、対応するセキュア エレメントを使用するセキュア エレメント アプリをインストールし、さまざまな条件下で NFC リーダーからの適切な応答を確認してください。