Accès rapide à votre carte de paiement

La fonctionnalité Accès rapide au portefeuille, disponible à partir d'Android 11, permet à l'utilisateur d'accéder aux cartes de paiement et aux pass pertinents directement depuis le menu Marche/Arrêt. Les principaux cas d'utilisation incluent la sélection du mode de paiement approprié avant d'effectuer une transaction sur un terminal NFC et l'accès rapide aux vols et autres pass pour les événements à venir.

Dans Android 12 ou version ultérieure, la fonctionnalité d'accès rapide au portefeuille est disponible dans l'ombre, comme illustré dans les figures 1 et 2.

Fonctionnalité d'accès rapide à Wallet dans le volet
Figure 1. Fonctionnalité d'accès rapide à votre carte de paiement (appareil verrouillé).
Fonctionnalité d'accès rapide à Wallet dans le volet
Figure 2. Fonctionnalité Accès rapide à Wallet (appareil déverrouillé).

Dans Android 11, la fonctionnalité est disponible dans le menu Marche/Arrêt, comme illustré à la figure 3.

Fonctionnalité d'accès rapide à Wallet dans le menu Marche/Arrêt
Figure 3. Fonctionnalité d'accès rapide à Wallet dans le menu Marche/Arrêt.

Conditions requises

Votre appareil doit être équipé de la technologie NFC pour utiliser la fonctionnalité d'accès rapide à Wallet. La fonctionnalité est liée à QuickAccessWalletService de l'application de paiement NFC par défaut, ce qui signifie que l'appareil doit également être compatible avec l'émulation de carte basée sur l'hôte (HCE).

Présentation de la fonctionnalité

L'accès rapide à votre carte de paiement se compose de deux parties : l'UI d'accès rapide à votre carte de paiement et le fournisseur de cartes de paiement pour l'accès rapide à votre carte de paiement.

Dans Android 12 ou version ultérieure, l'UI Wallet s'exécute dans l'UI système et se trouve dans frameworks/base/packages/SystemUI/src/com/android/systemui/wallet. Dans Android 11, l'UI Wallet, qui se trouve dans platform/packages/apps/QuickAccessWallet, doit être installée et ajoutée à la liste blanche.

Le fournisseur de la carte Accès rapide à Wallet est l'application de paiement NFC par défaut. Les utilisateurs peuvent installer plusieurs applications de paiement NFC simultanément, mais seule l'application de paiement NFC par défaut peut afficher des cartes dans le menu Marche/Arrêt. Vous pouvez spécifier l'application de paiement NFC définie comme par défaut au départ, mais les utilisateurs peuvent sélectionner une autre application dans les paramètres. Si une seule application de paiement NFC est installée, elle devient automatiquement l'application par défaut (voir CardEmulationManager).

Implémentation

Pour fournir des cartes à l'UI du portefeuille à accès rapide, les applications de paiement NFC doivent implémenter QuickAccessWalletService. Les applications de paiement doivent inclure une entrée de fichier manifeste annonçant le service.

Pour s'assurer que seule l'UI système peut se lier à QuickAccessWalletService, l'application de paiement NFC doit nécessiter l'autorisation android.permission.BIND_QUICK_ACCESS_WALLET_SERVICE. Cette autorisation est nécessaire pour que seule l'UI système puisse se lier à QuickAccessWalletService.

<service
     android:name=".MyQuickAccessWalletService"
     android:label="@string/my_default_tile_label"
     android:icon="@drawable/my_default_icon_label"
     android:logo="@drawable/my_wallet_logo"
     android:permission="android.permission.BIND_QUICK_ACCESS_WALLET_SERVICE">
     <intent-filter>
         <action android:name="android.service.quickaccesswallet.QuickAccessWalletService" />
         <category android:name="android.intent.category.DEFAULT"/>
     </intent-filter>
     <meta-data android:name="android.quickaccesswallet"
          android:resource="@xml/quickaccesswallet_configuration" />
     <meta-data
          android:name="android.quickaccesswallet.tile"
          android:resource="@drawable/my_default_tile_icon"/>
</service>

Des informations supplémentaires sur le portefeuille sont incluses dans le fichier XML associé :

<quickaccesswallet-service
   xmlns:android="http://schemas.android.com/apk/res/android"
   android:settingsActivity="com.example.android.SettingsActivity"
   android:shortcutLongLabel="@string/my_wallet_empty_state_text"
   android:shortcutShortLabel="@string/my_wallet_button_text"
   android:targetActivity="com.example.android.WalletActivity"/>

Ensuite, l'application de paiement doit implémenter QuickAccessWalletService :

public class MyQuickAccessWalletService extends QuickAccessWalletService {

    @Override
    public void onWalletCardsRequested(
            GetWalletCardsRequest request,
            GetWalletCardsCallback callback) {
        GetWalletCardsResponse response = // generate response
        callback.onSuccess(response);
    }

    @Override
    public void onWalletCardSelected(SelectWalletCardRequest request) {
        // selecting a card should ensure that it is used when making an NFC payment
    }

    @Override
    public void onWalletDismissed() {
        // May un-select card if the wallet app has the concept of a 'default'
        // payment method
    }
}

Si HostApduService commence à gérer une transaction NFC et, par conséquent, démarre une activité pour afficher la progression et le résultat du paiement, il doit également essayer d'obtenir une référence au QuickAccessWalletService lié et appeler QuickAccessWalletService#sendEvent avec un type d'événement TYPE_NFC_PAYMENT_STARTED. L'UI du portefeuille à accès rapide est alors fermée, ce qui permet à l'utilisateur de voir clairement l'activité de paiement.

Pour en savoir plus sur l'implémentation de QuickAccessWalletService, consultez QuickAccessWalletService et le test CTS TestQuickAccessWalletService.

Activer l'UI d'accès rapide à Wallet dans Android 11

Pour configurer le portefeuille à accès rapide afin qu'il soit disponible dans le menu Marche/Arrêt d'Android 11, incluez la cible QuickAccessWallet dans la compilation et activez le plug-in globalactions.wallet en ajoutant la ligne en gras dans l'exemple de code ci-dessous au fichier overlay/frameworks/base/packages/SystemUI/res/values/config.xml.

<resources>
    ...
    <!-- SystemUI Plugins that can be loaded on user builds. -->
    <string-array name="config_pluginWhitelist" translatable="false">
        <item>com.android.systemui</item>
        <item>com.android.systemui.plugin.globalactions.wallet</item>
    </string-array>
</resources>

Spécifiez l'application de paiement NFC par défaut dans le fichier de configuration des paramètres à l'aide de def_nfc_payment_component.

L'application de paiement NFC par défaut doit exposer QuickAccessWalletService pour fournir des cartes au portefeuille à accès rapide. Si l'application de paiement NFC par défaut n'exporte pas ce service, l'UI du portefeuille est masquée.

Détails de l'implémentation de QuickAccessWalletService

QuickAccessWalletService comporte trois méthodes abstraites qui doivent être implémentées : onWalletCardsRequested, onWalletCardSelected et onWalletDismissed. Le diagramme de séquence ci-dessous illustre une séquence d'appel lorsque le portefeuille à accès rapide est consulté immédiatement avant un paiement NFC.

Diagramme séquentiel de l&#39;accès rapide à Wallet

Exemple de séquence d&#39;appel lorsque l&#39;accès rapide à votre carte de paiement est consulté
Figure 4 : Exemple de séquence d'appel lorsque le portefeuille à accès rapide est consulté.

Toutes les vues du portefeuille à accès rapide ne sont pas suivies d'un paiement NFC, mais la figure 4 ci-dessus illustre toutes les fonctionnalités de QuickAccessWalletService. Dans cet exemple, le fournisseur de la carte portefeuille à accès rapide implémente les éléments décrits en bleu. Il est supposé que les cartes de paiement sont stockées sur l'appareil dans une base de données et qu'elles sont accessibles via une interface nommée PaymentCardManager. Il est également supposé qu'une activité appelée PaymentActivity affiche le résultat d'un paiement NFC. Le flux se déroule comme suit :

  1. L'utilisateur effectue un geste pour afficher le portefeuille à accès rapide.
  2. L'UI du portefeuille à accès rapide (qui fait partie de l'UI système) vérifie le gestionnaire de packages pour voir si l'application de paiement NFC par défaut exporte QuickAccessWalletService.

    • Si le service n'est pas exporté, le portefeuille à accès rapide ne s'affiche pas.
  3. L'UI du portefeuille à accès rapide se lie à QuickAccessWalletService et appelle onWalletCardsRequested. Cette méthode utilise un objet de requête contenant des données sur le nombre et la taille des cartes pouvant être fournies, ainsi qu'un rappel. Le rappel peut être appelé à partir d'un thread en arrière-plan.

  4. QuickAccessWalletService calcule les cartes qu'il souhaite afficher, puis appelle la méthode onSuccess sur le rappel fourni. Il est recommandé que le service effectue ces actions sur un thread d'arrière-plan.

  5. Dès que les cartes sont affichées, l'UI système avertit QuickAccessWalletService que la première carte a été sélectionnée en appelant onWalletCardSelected.

    • onWalletCardSelected est appelé chaque fois que l'utilisateur sélectionne une nouvelle carte.
    • onWalletCardSelected peut être appelé même si la carte actuellement sélectionnée n'a pas changé.
  6. Lorsque l'utilisateur ferme l'accès rapide au portefeuille, l'UI système en informe QuickAccessWalletService en appelant onWalletDismissed.

Dans l'exemple ci-dessus, l'utilisateur approche son téléphone d'un terminal de paiement NFC pendant que le portefeuille s'affiche. HostApduService est un composant clé de la gestion des paiements NFC. Il doit être implémenté pour traiter les APDU fournis par le lecteur NFC (pour en savoir plus, consultez Émulation de carte basée sur l'hôte). Il est supposé que l'application de paiement démarre une activité pour afficher la progression et le résultat de l'interaction avec le terminal NFC. Toutefois, l'UI du portefeuille à accès rapide s'affiche au-dessus de la fenêtre de l'application, ce qui signifie que l'activité de paiement est masquée par l'UI du portefeuille à accès rapide. Pour résoudre ce problème, l'application doit notifier à l'UI système que l'UI du portefeuille à accès rapide doit être fermée. Pour ce faire, il peut obtenir une référence au QuickAccessWalletService lié et appeler sendWalletServiceEvent avec le type d'événement TYPE_NFC_PAYMENT_STARTED.

Exemple d'implémentation de QuickAccessWalletService

/** Sample implementation of {@link QuickAccessWalletService} */
@RequiresApi(VERSION_CODES.R)
public class MyQuickAccessWalletService extends QuickAccessWalletService {

  private static final String TAG = "QAWalletSvc";
  private ExecutorService executor;
  private PaymentCardManager paymentCardManager;

  @Override
  public void onCreate() {
    super.onCreate();
    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.R) {
      Log.w(TAG, "Should not run on pre-R devices");
      stopSelf();
      return;
    }
    executor = Executors.newSingleThreadExecutor();
    paymentCardManager = new PaymentCardManager();
  }

  @Override
  public void onDestroy() {
    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.R) {
      return;
    }
    executor.shutdownNow();
  }

  @Override
  public void onWalletCardsRequested(
      @NonNull GetWalletCardsRequest request, @NonNull GetWalletCardsCallback callback) {
    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.R) {
      return;
    }
    executor.submit(
        () -> {
          List<PaymentCard> paymentCards = paymentCardManager.getCards();
          int maxCards = Math.min(paymentCards.size(), request.getMaxCards());
          List<WalletCard> walletCards = new ArrayList<>(maxCards);
          int selectedIndex = 0;
          int cardWidthPx = request.getCardWidthPx();
          int cardHeightPx = request.getCardHeightPx();
          for (int index = 0; index < maxCards; index++) {
            PaymentCard paymentCard = paymentCards.get(index);
            WalletCard walletCard =
                new WalletCard.Builder(
                        paymentCard.getCardId(),
                        paymentCard.getCardImage(cardWidthPx, cardHeightPx),
                        paymentCard.getContentDescription(),
                        paymentCard.getPendingIntent())
                    .build();
            walletCards.add(walletCard);
            if (paymentCard.isSelected()) {
              selectedIndex = index;
            }
          }
          GetWalletCardsResponse response =
              new GetWalletCardsResponse(walletCards, selectedIndex);
          callback.onSuccess(response);
        });
  }

  @Override
  public void onWalletCardSelected(@NonNull SelectWalletCardRequest request) {
    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.R) {
      return;
    }
    executor.submit(
        () -> paymentCardManager.selectCardById(request.getCardId()));
  }

  @Override
  public void onWalletDismissed() {
    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.R) {
      return;
    }
    executor.submit(() -> {
      paymentCardManager.removeCardOverrides();
    });
  }
}

Pour en savoir plus sur QuickAccessWalletService, consultez la documentation de référence de l'API QuickAccessWalletService.

Autorisations

L'entrée de fichier manifeste pour QuickAccessWalletService doit nécessiter l'autorisation android.permission.BIND_QUICK_ACCESS_WALLET_SERVICE introduite dans Android 11. Il s'agit d'une autorisation au niveau de la signature détenue par l'interface utilisateur du système, ce qui signifie que seul le processus de l'interface utilisateur du système peut se lier aux implémentations de QuickAccessWalletService. Sachez que les applications installées par transfert peuvent revendiquer cette autorisation et obtenir un accès complet aux données QuickAccessWalletService sur les appareils équipés d'Android 10 ou version antérieure. Pour éviter cela, il est recommandé que le service vérifie la version de compilation dans onCreate et n'active le service que sur les appareils équipés d'Android 11 ou version ultérieure. Aucune autre autorisation d'application n'est requise au-delà de celles nécessaires pour fournir des services de paiement par émulation de carte hôte.

Si l'application de paiement NFC par défaut n'implémente pas ou n'exporte pas QuickAccessWalletService, l'UI Wallet à accès rapide ne s'affiche pas.

Paramètres dans Android 12

Pour activer ou désactiver l'accès rapide au portefeuille depuis l'écran de verrouillage, les utilisateurs peuvent utiliser le bouton Afficher le portefeuille dans Paramètres > Écran > Écran de verrouillage. Pour désactiver le portefeuille dans l'ombre, les utilisateurs doivent le modifier manuellement dans l'ombre des paramètres rapides.

Activer ou désactiver le portefeuille depuis l&#39;écran de verrouillage

Figure 5. Afficher le bouton bascule du portefeuille sur la page "Écran de verrouillage" des paramètres.

Paramètres dans Android 11

Les utilisateurs peuvent désactiver la fonctionnalité d'accès rapide au portefeuille depuis l'application Paramètres. La page des paramètres se trouve sous Paramètres > Système > Gestes > Cartes et pass.

Page des paramètres permettant d&#39;activer ou de désactiver la fonctionnalité d&#39;accès rapide à Wallet
Figure 6 : Page des paramètres permettant d'activer ou de désactiver la fonctionnalité d'accès rapide à Wallet.

Personnalisation

Ajouter la vue Accès rapide à Wallet à un autre emplacement dans l'UI système

L'UI Quick Access Wallet est conçue comme un plug-in système. Bien que l'implémentation AOSP l'utilise dans GlobalActionsDialog (affiché lors d'un appui long sur le bouton Marche/Arrêt), vous pouvez déplacer la fonctionnalité derrière un autre geste à condition de respecter le contrat spécifié par l'interface du plug-in.

public interface GlobalActionsPanelPlugin extends Plugin {

  /** Invoked when the view is shown */
  PanelViewController onPanelShown(Callbacks callbacks, boolean deviceLocked);

  /** Callbacks for interacting with the view container */
  interface Callbacks {
    /** Dismisses the view */
    void dismissGlobalActionsMenu();

    /** Starts a PendingIntent, dismissing the keyguard if necessary. */
    void startPendingIntentDismissingKeyguard(PendingIntent pendingIntent);
  }

  /** Provides the Quick Access Wallet view */
  interface PanelViewController {

    /** Returns the QuickAccessWallet view, which may take any size */
    View getPanelContent();

    /** Invoked when the view is dismissed */
    void onDismissed();

    /** Invoked when the device is either locked or unlocked. */
    void onDeviceLockStateChanged(boolean locked);
  }
}

L'UI d'accès rapide à Wallet implémente GlobalActionsPanelPlugin et PanelViewController. GlobalActionsDialog obtient une instance du plug-in Wallet à l'aide de com.android.systemui.Dependency :

GlobalActionsPanelPlugin mPanelPlugin =
    Dependency.get(ExtensionController.class)
        .newExtension(GlobalActionsPanelPlugin.class)
        .withPlugin(GlobalActionsPanelPlugin.class)
        .build()
        .get();

Après avoir vérifié que le plug-in n'est pas nul et que le PanelViewController renvoyé par onPanelShown n'est pas nul, la boîte de dialogue associe le View fourni par getPanelContent à son propre View et fournit les rappels appropriés pour les événements système.

// Construct a Wallet PanelViewController.
// `this` implements GlobalActionsPanelPlugin.Callbacks
GlobalActionsPanelPlugin.PanelViewController mPanelController =
    mPanelPlugin.onPanelShown(this, !mKeyguardStateController.isUnlocked());

// Attach the view
FrameLayout panelContainer = findViewById(R.id.my_panel_container);
FrameLayout.LayoutParams panelParams =
    new FrameLayout.LayoutParams(
        FrameLayout.LayoutParams.MATCH_PARENT,
        FrameLayout.LayoutParams.MATCH_PARENT);
panelContainer.addView(mPanelController.getPanelContent(), panelParams);

// Respond to unlock events (if the view can be accessed while the phone is locked)
keyguardStateController.addCallback(new KeyguardStateController.Callback() {
  @Override
  public void onUnlockedChanged() {
    boolean unlocked = keyguardStateController.isUnlocked()
        || keyguardStateController.canDismissLockScreen();
    mPanelController.onDeviceLockStateChanged(unlocked);
  }
});

// Implement GlobalActionsPanelPlugin.Callbacks
@Override
public void dismissGlobalActionsMenu() {
  dismissDialog();
}
@Override
public void startPendingIntentDismissingKeyguard(PendingIntent pendingIntent) {
  mActivityStarter.startPendingIntentDismissingKeyguard(pendingIntent);
}

// Notify the wallet when the container view is dismissed
mPanelController.onDismissed();

Pour supprimer l'accès rapide à Wallet du menu Marche/Arrêt, omettez la cible QuickAccessWallet de la compilation système. Pour supprimer le portefeuille à accès rapide du menu Marche/Arrêt, mais l'ajouter à une autre vue fournie par l'UI système, incluez la cible de compilation et supprimez les références à GlobalActionsPanelPlugin de GlobalActionsImpl.

Définir des configurations par défaut

Android 12

Dans Android 12 ou version ultérieure, l'accès rapide à Wallet est toujours visible dans le panneau des réglages rapides. La visibilité de l'accès rapide au portefeuille sur l'écran de verrouillage est contrôlée par le paramètre de sécurité suivant : LOCKSCREEN_SHOW_WALLET. Ce paramètre détermine si l'icône du portefeuille à accès rapide s'affiche en bas à droite de l'écran de verrouillage. Ce paramètre est défini sur true par défaut, mais l'utilisateur peut le désactiver dans Paramètres > Affichage > Écran de verrouillage > Afficher le portefeuille.

Android 11

Dans Android 11, la visibilité de l'accès rapide à Wallet est contrôlée par deux paramètres sécurisés : GLOBAL_ACTIONS_PANEL_ENABLED et GLOBAL_ACTIONS_PANEL_AVAILABLE. Le paramètre AVAILABLE permet de contrôler si la fonctionnalité peut être activée ou désactivée dans les paramètres. Ce paramètre est défini sur true par WalletPluginService. Si QuickAccessWallet n'est pas inclus dans la compilation, le paramètre reste false. Le paramètre ENABLED est défini sur true par défaut au même endroit, mais l'utilisateur peut le désactiver dans les paramètres. Pour modifier le comportement par défaut, modifiez WalletPluginService#enableFeatureInSettings.

Validation

Pour valider l'implémentation du portefeuille à accès rapide, exécutez les tests CTS et manuels. Les modifications apportées au plug-in doivent également exécuter les tests Robolectric inclus.

Tests CTS

Exécutez les tests CTS situés à l'adresse cts/tests/quickaccesswallet.

Tests manuels pour Android 12

Pour tester les fonctionnalités de base du portefeuille à accès rapide, vous avez besoin d'un terminal de paiement NFC (réel ou factice) et d'une application de paiement NFC qui implémente QuickAccessWalletService (application de portefeuille). Les fonctionnalités de base qui doivent être testées incluent la disponibilité, l'état zéro, la sélection de cartes et le comportement de l'écran de verrouillage.

Disponibilité

  • Si l'application de paiement NFC par défaut ne prend pas en charge la fonctionnalité, le portefeuille à accès rapide n'est accessible ni dans les réglages rapides ni sur l'écran de verrouillage.
  • Si l'application de paiement NFC par défaut est compatible avec la fonctionnalité, le portefeuille à accès rapide est accessible dans le panneau des réglages rapides.
  • Si l'application de paiement NFC par défaut prend en charge la fonctionnalité et si le paramètre LOCKSCREEN_SHOW_WALLET est défini sur true, le portefeuille à accès rapide est accessible sur l'écran de verrouillage.
  • Si l'application de paiement NFC par défaut est compatible avec la fonctionnalité et que le paramètre LOCKSCREEN_SHOW_WALLET est défini sur false, le portefeuille à accès rapide n'est pas accessible sur l'écran de verrouillage.

État zéro

  • Si QuickAccessWalletService est activé et exporté, mais ne fournit aucune carte, le bloc dans la nuance s'affiche comme dans l'exemple de la figure 7. En cliquant sur la carte, l'application de paiement NFC par défaut s'ouvre.

    Exemple de bloc dans le volet affichant l&#39;application de paiement NFC par défaut

    Figure 7. Exemple de bloc dans l'ombre montrant l'application de paiement NFC par défaut.

  • Si vous cliquez sur la vue d'état vide, comme illustré à la figure 8, l'application de paiement NFC par défaut s'ouvre. Cette vue d'état vide ne s'affiche que lorsque l'utilisateur n'a plus qu'une seule carte dans le portefeuille, qu'il la supprime de la page d'informations sur la carte, puis qu'il revient à la vue du portefeuille.

  • L'icône du portefeuille s'affiche sur l'écran de verrouillage.

Vue de l&#39;état vide dans l&#39;accès rapide à Wallet

Figure 8. Vue de l'état vide dans l'UI de l'accès rapide à Wallet.

État non nul

  • Si l'application Wallet fournit une ou plusieurs cartes, le bloc dans l'ombre apparaît comme illustré à la figure 9.

    Exemple de carte dans l&#39;ombre lorsque l&#39;application Portefeuille comporte une ou plusieurs cartes

    Figure 9. Exemple de bloc dans l'ombre lorsque l'application Wallet comporte une ou plusieurs cartes.

  • En cliquant sur la vignette, un carrousel de fiches s'affiche.

  • L'écran de verrouillage affiche un bouton qui ouvre l'accès rapide à Wallet.

    Interface utilisateur de l&#39;accès rapide à Wallet avec une carte affichée

    Figure 10. Interface utilisateur de l'accès rapide à Google Wallet avec une carte affichée.

  • Si la carte affichée représente un mode de paiement NFC, le fait de placer le téléphone sur un terminal de paiement NFC entraîne l'utilisation de ce mode de paiement et la fermeture de la vue du portefeuille.

  • Cliquez sur une fiche affichée pour ouvrir l'activité détaillée correspondante.

  • Si QuickAccessWalletService fournit plusieurs cartes, l'utilisateur peut balayer l'écran pour passer d'une carte à l'autre.

  • Le menu à développer contient une entrée : ouvrir les paramètres de l'écran de verrouillage pour que l'utilisateur puisse modifier l'option Afficher le portefeuille.

Tests de l'état de verrouillage

  • Si le téléphone est verrouillé, le portefeuille est visible dans le panneau des réglages rapides, avec la description Ajouter une carte si aucune carte n'existe dans l'application de paiement par défaut, ou Déverrouiller pour utiliser si des cartes existent dans l'application de paiement par défaut.
  • Si le téléphone est verrouillé, la visibilité du portefeuille sur l'écran de verrouillage est contrôlée par le paramètre Secure.LOCKSCREEN_SHOW_WALLET, qui est contrôlé dans les paramètres.
  • Si le téléphone est verrouillé, LOCKSCREEN_SHOW_WALLET est défini sur false et aucune carte n'existe dans l'application de paiement NFC par défaut, le portefeuille n'est pas affiché sur l'écran de verrouillage.
  • Si le téléphone est verrouillé, LOCKSCREEN_SHOW_WALLET est défini sur true et aucune carte n'existe dans l'application de paiement NFC par défaut, le portefeuille n'est pas affiché sur l'écran de verrouillage.
  • Si le téléphone est verrouillé, LOCKSCREEN_SHOW_WALLET est défini sur true et des cartes existent dans l'application de paiement NFC par défaut, le portefeuille s'affiche sur l'écran de verrouillage.
  • Si vous déverrouillez votre téléphone alors que le portefeuille est affiché sur l'écran de verrouillage, les cartes sont à nouveau demandées, ce qui peut entraîner un contenu différent.

Tests d'accessibilité

  • Les utilisateurs de Talkback peuvent parcourir la vue du portefeuille en balayant l'écran vers la gauche et vers la droite, et en écoutant les descriptions du contenu des cartes.
  • Lorsque TalkBack est activé, balayer l'écran vers la gauche ou la droite permet de sélectionner chaque fiche à tour de rôle. Les utilisateurs de Talkback peuvent sélectionner et utiliser un mode de paiement NFC sur un terminal de paiement NFC.

Tests manuels pour Android 11

Pour tester les fonctionnalités de base du portefeuille à accès rapide, vous avez besoin d'un terminal de paiement NFC (réel ou factice) et d'une application de paiement NFC qui implémente QuickAccessWalletService (application de portefeuille). Les fonctionnalités de base à tester incluent la disponibilité, l'état zéro, la sélection de cartes et le comportement de l'écran de verrouillage.

Disponibilité

  • Si le paramètre GLOBAL_ACTIONS_PANEL_ENABLED est défini sur true et que l'application de paiement NFC par défaut est compatible avec la fonctionnalité, le portefeuille à accès rapide est accessible.
  • Si le paramètre GLOBAL_ACTIONS_PANEL_ENABLED est défini sur false et que l'application de paiement NFC par défaut est compatible avec la fonctionnalité, le portefeuille à accès rapide n'est pas accessible.
  • Si le paramètre GLOBAL_ACTIONS_PANEL_ENABLED est défini sur true et que l'application de paiement NFC par défaut n'est pas compatible avec la fonctionnalité, le portefeuille à accès rapide n'est pas accessible.
  • Si le paramètre GLOBAL_ACTIONS_PANEL_ENABLED est défini sur false et que l'application de paiement NFC par défaut n'est pas compatible avec la fonctionnalité, le portefeuille à accès rapide n'est pas accessible.

État zéro

  • Si QuickAccessWalletService est activé et exporté, mais ne fournit aucune carte, l'interface utilisateur de l'accès rapide à Wallet affiche la vue de l'état vide.
  • Si vous cliquez sur la vue d'état vide, l'application Wallet s'ouvre.

    Vue de l&#39;état vide dans l&#39;UI de l&#39;accès rapide à Wallet
    Figure 11. Vue de l'état vide dans l'UI d'accès rapide à Wallet.

État non nul

  • Si l'application Wallet fournit une ou plusieurs cartes, celles-ci s'affichent dans l'UI Quick Access Wallet.

    Interface utilisateur de l&#39;accès rapide à Wallet avec une carte affichée
    Figure 12 : Interface utilisateur d'accès rapide à Wallet avec une carte affichée.
  • Si la carte affichée représente un mode de paiement NFC, le fait de placer le téléphone sur un terminal de paiement NFC entraîne l'utilisation de ce mode de paiement et la fermeture de la vue du portefeuille.

  • Si vous cliquez sur une carte affichée, la vue du portefeuille est fermée et l'activité détaillée de cette carte s'ouvre.

  • Si QuickAccessWalletService fournit plusieurs cartes, l'utilisateur peut balayer l'écran pour passer d'une carte à l'autre.

  • Le menu à développer contient deux entrées : l'une ouvre l'application Wallet et l'autre ouvre l'écran Afficher les cartes et pass dans les paramètres.

Tests de l'état de verrouillage

  • Si le téléphone est verrouillé, la visibilité du portefeuille est contrôlée par le paramètre Settings.Secure.POWER_MENU_LOCK_SHOW_CONTENT, qui peut être géré dans les paramètres.
  • Si le téléphone est verrouillé et que POWER_MENU_LOCK_SHOW_CONTENT est défini sur false, le portefeuille n'est pas affiché.
  • Si le téléphone est verrouillé et que POWER_MENU_LOCK_SHOW_CONTENT est défini sur true, le portefeuille s'affiche.
  • Si vous déverrouillez le téléphone alors que le portefeuille est affiché sur l'écran de verrouillage, les cartes sont à nouveau demandées, ce qui peut entraîner un contenu différent.

Tests d'accessibilité

  • Les utilisateurs de TalkBack peuvent parcourir la vue du portefeuille en balayant l'écran vers la gauche et vers la droite, et en écoutant les descriptions du contenu des cartes.
  • Lorsque TalkBack est activé, balayer l'écran vers la gauche ou la droite permet de sélectionner chaque fiche à tour de rôle. Les utilisateurs de TalkBack peuvent sélectionner et utiliser un mode de paiement NFC sur un terminal de paiement NFC.