À partir du 27 mars 2025, nous vous recommandons d'utiliser android-latest-release au lieu de aosp-main pour créer et contribuer à AOSP. Pour en savoir plus, consultez la section Modifications apportées à AOSP.
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Android est compatible avec l'émulation de carte NFC avec un composant sécurisé pour l'émulation de carte hors hôte. (Pour en savoir plus, consultez la section Présentation de l'émulation de cartes basée sur l'hôte.)
Toutefois, sur la plate-forme Android, le service de paiement préféré spécifié dans le paramètre de paiement sans contact n'est pas toujours synchronisé avec l'application dans l'élément sécurisé. Cela signifie qu'il est possible qu'un service de paiement non préféré dans l'élément sécurisé soit utilisé à la place du service de paiement préféré.
Dans Android 11, la fonctionnalité de synchronisation des paiements hors hôte fournit un mécanisme qui vous permet de synchroniser la configuration de paiement dans le paiement sans contact, la configuration de routage sur le frontend sans contact (CLF) et l'état sélectionné par l'application dans l'élément sécurisé.
Le diagramme suivant illustre l'architecture de conception de la fonctionnalité de synchronisation des paiements hors hôte.
Figure 1. Architecture de conception de la synchronisation des paiements hors hôte
Implémentation
Pour implémenter la fonctionnalité de synchronisation des paiements hors hôte, l'appareil doit disposer d'un contrôleur NFC compatible avec la norme NCI 2.0 et utiliser les frameworks Android Open Source Project NFC et OMAPI (Open Mobile Application Programming Interface).
API du framework
Pour implémenter la synchronisation des paiements hors hôte, utilisez les API de framework suivantes disponibles dans le projet Open Source Android:
Pour valider votre implémentation de la fonctionnalité de synchronisation des paiements hors hôte, installez des applications d'élément sécurisé avec les éléments sécurisés correspondants, puis recherchez les réponses appropriées d'un lecteur NFC dans différentes conditions.
Le contenu et les exemples de code de cette page sont soumis aux licences décrites dans la Licence de contenu. Java et OpenJDK sont des marques ou des marques déposées d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/07/27 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/07/27 (UTC)."],[],[],null,["# NFC off-host payment synchronization\n\nAndroid supports NFC card emulation with a secure element for off-host card\nemulation. (For more information, see\n[Host-based card emulation overview](https://developer.android.com/guide/topics/connectivity/nfc/hce).)\nHowever, on the Android platform, the preferred payment service specified in the\nTap \\& pay setting isn't always synchronized with the app in the secure\nelement. This means it's possible that a nonpreferred payment service in the\nsecure element is used instead of the preferred payment service.\n\nIn Android 11, the *off-host payment synchronization*\nfeature provides a mechanism that lets you synchronize the payment\nconfiguration in Tap \\& pay, the routing configuration on the contactless\nfrontend (CLF), and the app-selected state in the secure element.\n\nThe following diagram illustrates the design architecture of the off-host\npayment synchronization feature.\n**Figure 1.** Off host payment synchronization design architecture\n\nImplementation\n--------------\n\nTo implement the off-host payment synchronization feature, the device must have\nan NFC controller that supports the NCI 2.0 standard and must use the Android\nOpen Source Project NFC and Open Mobile Application Programming Interface\n(OMAPI) frameworks.\n\n### Framework APIs\n\nTo implement off-host payment synchronization, use the following framework APIs\nfound in the Android Open Source Project:\n\n- [`getAidsForPreferredPaymentService()`](https://developer.android.com/reference/android/nfc/cardemulation/CardEmulation#getAidsForPreferredPaymentService()): Retrieves the registered AIDs for the preferred payment service.\n- [`getRouteDestinationForPreferredPaymentService()`](https://developer.android.com/reference/android/nfc/cardemulation/CardEmulation#getDescriptionForPreferredPaymentService()): Retrieves the route destination for the preferred payment service.\n- [`getDescriptionForPreferredPaymentService()`](https://developer.android.com/reference/android/nfc/cardemulation/CardEmulation#getRouteDestinationForPreferredPaymentService()): Returns a user-visible description of the preferred payment service.\n- [`android.permission.NFC_PREFERRED_PAYMENT_INFO`](https://developer.android.com/reference/android/Manifest.permission#NFC_PREFERRED_PAYMENT_INFO) (permission): Allows apps to receive NFC preferred payment service information.\n- [`android.nfc.action.PREFERRED_PAYMENT_CHANGED`](https://developer.android.com/sdk/api_diff/r-dp1/changes/android.nfc.NfcAdapter) (broadcast action): Intent to notify if the preferred payment service changed.\n\nValidation\n----------\n\nTo validate your implementation of the off-host payment synchronization feature,\ninstall secure element apps with corresponding secure elements and then check\nfor appropriate responses from an NFC reader in different conditions."]]