Welcome to our new developer portal! Use the "Ask" button to chat with our AI Agent.
For the complete documentation index, see llms.txt. This page is also available as Markdown.

Android で NFC 決済を制御する

概要

Androidのシステム設定は、あなたの デジタルウォレットアプリケーション が正しくても、非接触決済をブロックすることがあります。

このページでは、NFC決済に影響するAndroidのコントロールと、それらをサポートするためのアプリ側要件を説明します。

NFC決済に影響するデバイス設定

NFCトグル

Androidは、Wi‑Fiやモバイルデータと同様のマスターNFCスイッチを提供します。

非接触決済を実行するにはNFCを有効にする必要があります。エンドユーザーはNFCを無効にして支払いをブロックすることもできます。

例: クイック設定のNFCトグル

デバイスのロック解除を要求(Android 12以降)

一部のデバイス(Android 12以降)では、デバイスがロック解除されている場合にのみNFCが動作するよう設定できます。

有効にされている場合、エンドユーザーはタップする前にデバイスのロックを解除する必要があります。

例: NFCに対してロック解除を要求するオプション

アプリケーションソースの選択(OEM固有)

一部のデバイスは複数の「支払い場所」(例: セキュアエレメントとHCEなど)をサポートします。

デバイスのハードウェアは、着信NFCコマンドを選択された場所へルーティングします。

例: 非接触決済のアプリケーションソース選択

NFCウォレットSDKはホストベースのカードエミュレーション(HCE)を使用します。

デバイスがアプリケーションソース設定を公開している場合、エンドユーザーに次に相当するオプションを選択するよう指示してください。 HCEウォレット.

デフォルトの支払いアプリケーション

Androidでは、エンドユーザーがTap & Payのデフォルト支払いアプリを選択できます。

例: デフォルト支払いアプリの設定

一部のデバイスは次のようなスイッチも表示します 現在開いているアプリで支払う.

これはアプリ側のサポートが必要です。参照してください 「現在開いているアプリで支払う」をサポートする.

デジタルウォレットアプリケーションの要件(HCE)

あなたの デジタルウォレットアプリケーション はHCEサービスを宣言する必要があります。

NFCウォレットSDKはあなたのためにHCEサービスを宣言しません。実装を簡素化するために以下を提供します AbstractHCEService を提供します。

背景については、次を参照してください ホストベースのカードエミュレーションの概要.

デフォルト支払いアプリケーションを検出および要求する

起動時には、次を行うことを推奨します:

  • CardEmulation#isDefaultServiceForCategoryを使用してあなたのHCEサービスがデフォルトかどうかを確認する。 CardEmulation#isDefaultServiceForCategory.

  • そうでない場合、CardEmulation#ACTION_CHANGE_DEFAULTを起動してエンドユーザーにあなたのアプリをデフォルト支払いサービスに設定するよう促します。 CardEmulation#ACTION_CHANGE_DEFAULT.

Androidはシステムダイアログを表示します。アプリラベル以外のテキストは変更できません。

例: デフォルト支払いアプリを変更するAndroidダイアログ

ユーザーの選択を監視するには、次を呼び出してください startActivityForResult そして結果を次で確認します onActivityResult:

Android設定でアプリの表示を制御する

Tap & Pay / 非接触決済のUIはOEM、機種、Androidバージョンによって異なります。

例: デバイス間のTap & Pay UIの違い

Androidは次のリソースからアプリケーションエントリを構築します:

  • AndroidManifest.xml

  • あなたの支払いサービスのメタデータリソース(で宣言) /manifest/application/service/meta-data/@android:resource)

次を制御できます:

  • アプリケーションアイコン: /manifest/application/@android:icon

  • 支払いサービスバナー:支払いサービスメタデータ、 /host-apdu-service/@android:apduServiceBanner

  • 支払いサービスラベル: /manifest/application/service/@android:label

    • このラベルは「デフォルト支払いアプリを設定」ダイアログでも使用されます。

  • 支払いサービスの説明:支払いサービスメタデータ、 /host-apdu-service/@android:description

リスト内のアプリの順序を制御することはできません。

フォアグラウンドアプリで支払う

一部のデバイスは次のような設定を公開します 現在開いているアプリで支払う または 現在実行中のアプリを優先する.

この設定は、エンドユーザーがフォアグラウンドのアプリにデフォルト支払いサービスを上書きすることを許可するという意味にすぎません。動作を強制するものではありません。

これを活用するには、次を実装してください CardEmulation#setPreferredServiceCardEmulation#unsetPreferredService Androidのガイドラインに従って。

The Activity に渡される setPreferredService(...) は再開(resumed)状態でなければなりません。

呼び出す setPreferredService(...)Activity#onResume.

呼び出す unsetPreferredService(...)Activity#onPause.

使用する CardEmulation#categoryAllowsForegroundPreference を使用して支払いカテゴリでフォアグラウンド優先が許可されているか検出します。

推奨事項:

  • CardEmulation.categoryAllowsForegroundPreference(CATEGORY_PAYMENT)を使用してフォアグラウンド優先が有効か確認してください。 CardEmulation.categoryAllowsForegroundPreference(CATEGORY_PAYMENT).

  • 前述のようにデフォルトアプリのオーバーライドを実装してください。

  • デジタルウォレットアプリケーションがフォアグラウンド時にのみ非接触取引を処理する場合、支払い体験が一貫しない可能性があることをエンドユーザーに警告してください。

最終更新

役に立ちましたか?