Accesso rapido a Wallet

La funzionalità di accesso rapido a Wallet, disponibile su Android 11 consente all'utente di accedi a carte di pagamento e tessere pertinenti direttamente dal menu del tasto di accensione. Uso frequente casi includono la selezione del metodo di pagamento appropriato prima di eseguire una una transazione presso un terminale NFC e accedere rapidamente a voli e altri pass per i prossimi eventi.

In Android 12 o versioni successive, l'app Wallet ad accesso rapido è disponibile dal colore come mostrato in Figura 1 e Figura 2.

Funzionalità Wallet di accesso rapido in un'area
Figura 1. Funzionalità Wallet ad accesso rapido (dispositivo bloccato).
Funzionalità Wallet di accesso rapido in un'area
Figura 2. Funzionalità Wallet ad accesso rapido (dispositivo sbloccato).

In Android 11, la funzionalità è disponibile dal menu del tasto di accensione, come mostrato in Figura 3.

Accesso rapido alla funzionalità Wallet nel menu del tasto di accensione
Figura 3. Funzionalità Wallet ad accesso rapido in potenza menu.

Requisiti

Il dispositivo deve disporre della tecnologia NFC per utilizzare la funzionalità Wallet ad accesso rapido. La funzionalità si associa a QuickAccessWalletService dell'app di pagamento NFC predefinita, il che significa il dispositivo deve supportare anche la tecnologia NFC host-based card emulation (HCE).

Panoramica delle funzionalità

Il portafoglio ad accesso rapido è costituito da due parti: l'interfaccia utente di Wallet ad accesso rapido e il fornitore della carta Wallet ad accesso rapido.

In Android 12 o versioni successive, l'interfaccia utente di Wallet viene eseguita nella sezione Sistema nell'interfaccia utente frameworks/base/packages/SystemUI/src/com/android/systemui/wallet Nel Android 11, l'interfaccia utente di Wallet, che si trova in platform/packages/apps/QuickAccessWallet, devono essere installati e inclusi nella lista consentita.

L'emittente della carta Wallet ad accesso rapido è l'app di pagamento NFC predefinita. Gli utenti possono avere più app di pagamento NFC installate contemporaneamente, ma solo l'app predefinita L'app di pagamento NFC può mostrare le carte nel menu del tasto di accensione. Puoi specificare quale NFC l'app di pagamento è inizialmente impostata come predefinita, ma gli utenti possono selezionarne un'altra nelle Impostazioni. Se è installata una sola app di pagamento NFC, questa diventa automaticamente (vedi CardEmulationManager).

Implementazione

Per fornire carte all'interfaccia utente di Wallet ad accesso rapido, pagamento NFC le app devono implementare QuickAccessWalletService Le app di pagamento devono includere una voce manifest che pubblicizza il servizio.

Per assicurarti che solo l'UI di sistema possa essere associata a QuickAccessWalletService, L'app di pagamento NFC deve richiedere Autorizzazione android.permission.BIND_QUICK_ACCESS_WALLET_SERVICE. Richiesta autorizzazione garantisce che solo l'UI di sistema può associarsi a 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>

Nel file XML collegato sono incluse ulteriori informazioni sul portafoglio:

<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"/>

Successivamente, l'app di pagamento deve implementare 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
    }
}

Se HostApduService inizia a gestire una transazione NFC e, di conseguenza, avvii un'attività per visualizzare lo stato di avanzamento e l'esito del pagamento, prova anche a ottenere un riferimento a QuickAccessWalletService associato e a richiamare QuickAccessWalletService#sendEvent con il tipo di evento TYPE_NFC_PAYMENT_STARTED. Questo fa sì che l'interfaccia utente di Wallet ad accesso rapido chiusa, consentendo all'utente di avere una visione libera dell'attività di pagamento.

Per ulteriore documentazione sull'implementazione di QuickAccessWalletService, consulta QuickAccessWalletService e ai TestQuickAccessWalletService Test CTS.

Attiva l'interfaccia utente di Wallet con accesso rapido in Android 11

Per configurare la disponibilità di Wallet ad accesso rapido dal menu del tasto di accensione in Android 11, sono incluse le QuickAccessWallet target nella build e abilitare il plug-in globalactions.wallet aggiungendo la riga in grassetto nell'esempio di codice seguente alla 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>

Specifica l'app di pagamento NFC predefinita nel file di configurazione delle impostazioni utilizzando def_nfc_payment_component.

L'app di pagamento NFC predefinita deve esporre QuickAccessWalletService per fornire carte al Wallet ad accesso rapido. Se l'app di pagamento NFC predefinita non esporta questo servizio, l'interfaccia utente di Wallet è nascosta.

Dettagli implementazione QuickAccessWalletService

QuickAccessWalletService prevede tre metodi astratti che devono essere implementati: onWalletCardsRequested, onWalletCardSelected e onWalletDismissed. La il diagramma seguente illustra una sequenza di chiamate quando il metodo di accesso rapido Wallet viene visualizzato immediatamente prima di un pagamento NFC.

Diagramma della sequenza di accesso rapido a Wallet

Esempio di sequenza di chiamate durante la visualizzazione di Wallet ad accesso rapido
Figura 4. Esempio di sequenza di chiamate con accesso rapido a Wallet visualizzati.

Non tutte le visualizzazioni del portafoglio ad accesso rapido sono seguite da un pagamento NFC, ma La Figura 4 qui sopra illustra tutte le funzionalità di QuickAccessWalletService. In questo esempio, la carta Wallet ad accesso rapido il provider implementa gli elementi contornati in blu. Si presume che il pagamento le carte sono memorizzate sul dispositivo in un database e sono accessibili tramite un denominata PaymentCardManager. Si presume inoltre che un'attività chiamato PaymentActivity mostra il risultato di un pagamento NFC. Il flusso procede nel seguente modo:

  1. L'utente esegue un gesto per aprire Wallet ad accesso rapido.
  2. L'interfaccia utente di Wallet ad accesso rapido (parte dell'interfaccia utente di sistema) controlla il pacchetto per verificare se l'app di pagamento NFC predefinita esporta QuickAccessWalletService.

    • Se il servizio non viene esportato, il portafoglio di accesso rapido non viene visualizzati.
  3. L'interfaccia utente di Wallet ad accesso rapido si associa ai QuickAccessWalletService e chiama onWalletCardsRequested. Questo metodo accetta un oggetto richiesta contenente dati sul numero e sulle dimensioni delle schede che possono essere fornite e un callback. Il callback può essere chiamato da un thread in background.

  4. QuickAccessWalletService calcola le schede che vuole visualizzare, quindi chiama il metodo onSuccess sul callback fornito. È è consigliabile che il servizio esegua queste azioni su un thread in background.

  5. Non appena vengono visualizzate le schede, l'UI di sistema invia una notifica QuickAccessWalletService che la prima carta è stata selezionata chiamando onWalletCardSelected.

    • onWalletCardSelected viene chiamato ogni volta che l'utente seleziona una nuova carta.
    • onWalletCardSelected potrebbe essere chiamato anche se al momento la carta selezionata non è cambiata.
  6. Quando l'utente chiude il Wallet ad accesso rapido, l'interfaccia utente di sistema invia una notifica QuickAccessWalletService chiamando il numero onWalletDismissed.

Nell'esempio precedente, l'utente inserisce il telefono nel raggio d'azione di un pagamento NFC terminale mentre il portafoglio è visualizzato. Un componente fondamentale della gestione dell'NFC il pagamento è HostApduService, che deve essere implementato per elaborare le APDU fornito dal lettore NFC (per ulteriori informazioni, vedi Emulazione delle carte basata su host). Si presuppone che l'app di pagamento avvii un'attività per visualizzare lo stato di avanzamento e risultato dell'interazione con il terminale NFC. Tuttavia, l'accesso rapido L'interfaccia utente di Wallet viene visualizzata nella parte superiore della finestra dell'app, a indicare che l'attività di pagamento è oscurata dall'interfaccia utente di Wallet ad accesso rapido. Per rettificare questo problema, deve comunicare all'interfaccia utente di sistema che l'interfaccia utente di Wallet ad accesso rapido deve essere ignorata. Può farlo ottenendo un riferimento al limite QuickAccessWalletService e chiamata sendWalletServiceEvent con l'evento digita TYPE_NFC_PAYMENT_STARTED.

Esempio di implementazione di 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();
    });
  }
}

Per ulteriori dettagli su QuickAccessWalletService, consulta Riferimento API QuickAccessWalletService.

Autorizzazioni

La voce del file manifest QuickAccessWalletService deve richiedere la proprietà Autorizzazione android.permission.BIND_QUICK_ACCESS_WALLET_SERVICE introdotta in Android 11. Questa è un'autorizzazione a livello di firma conservata dall'UI di sistema, il che significa solo il processo dell'interfaccia utente di sistema può essere legato alle implementazioni QuickAccessWalletService. Tieni presente che le app installate in sideload possono rivendicarlo e ottieni l'accesso completo ai dati di QuickAccessWalletService sui dispositivi con Android 10 o versioni precedenti. Per evitare che questo accada, consigliamo al servizio controlla la versione della build in onCreate e abilita il servizio solo sui dispositivi con Android 11 e versioni successive. Nessun'altra autorizzazione app oltre a quelle necessarie per fornire il pagamento tramite emulazione della carta host i servizi di machine learning.

Se l'app di pagamento NFC predefinita non implementa né esporta QuickAccessWalletService, l'interfaccia utente di Wallet ad accesso rapido non viene visualizzata.

Impostazioni in Android 12

Per attivare o disattivare Wallet ad accesso rapido dalla schermata di blocco, gli utenti possono: usa il pulsante di attivazione/disattivazione Mostra portafoglio in Impostazioni > Display > Schermata di blocco. Per disattivare Wallet nell'area, gli utenti devono modificare manualmente nell'area delle impostazioni rapide.

Attiva/disattiva per abilitare o disabilitare il portafoglio dalla schermata di blocco

Figura 5. Mostra l'opzione di attivazione/disattivazione di Wallet nella pagina Schermata di blocco in Impostazioni.

Impostazioni in Android 11

Gli utenti possono disattivare la funzionalità Wallet di accesso rapido dall'app Impostazioni. La impostazioni si trova nella Impostazioni > Sistema > Gesti > Schede e pass.

Pagina Impostazioni per attivare o disattivare la funzionalità Wallet ad accesso rapido
Figura 6. Impostazioni per attivare o disattivare Funzionalità Wallet ad accesso rapido.

Personalizzazione

Aggiungi la visualizzazione Wallet ad accesso rapido a un'altra posizione nell'interfaccia utente di sistema

La UI di Wallet ad accesso rapido è realizzato come un plug-in di sistema. Sebbene l'implementazione AOSP lo utilizzi GlobalActionsDialog (visualizzato quando premi a lungo il tasto di accensione), puoi spostare la funzionalità dietro un gesto diverso purché si mantenga il contratto specificato dall'interfaccia del 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);
  }
}

La UI di Wallet ad accesso rapido implementa GlobalActionsPanelPlugin e PanelViewController. GlobalActionsDialog ottiene un'istanza del plug-in Wallet utilizzando com.android.systemui.Dependency:

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

Dopo aver verificato che il plug-in sia diverso da null e che PanelViewController restituito da onPanelShown non è null, la finestra di dialogo allega il View fornito da getPanelContent al proprio View e fornisce i callback appropriati per eventi di sistema.

// 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();

Per rimuovere il wallet di accesso rapido dal menu del tasto di accensione, ometti il QuickAccessWallet target dalla build di sistema. Per rimuovere l'accesso rapido Wallet dal menu del tasto di accensione, ma aggiungerlo a un'altra visualizzazione fornita dall'interfaccia utente di sistema includi il target della build e rimuovi i riferimenti a GlobalActionsPanelPlugin da GlobalActionsImpl

Imposta configurazioni predefinite

Android 12

In Android 12 o versioni successive, il riquadro Wallet ad accesso rapido sempre visibile nell'area Impostazioni rapide. Visibilità dell’Accesso rapido L'accesso a Wallet nella schermata di blocco è limitato dalla seguente impostazione di sicurezza: LOCKSCREEN_SHOW_WALLET. Questa impostazione stabilisce se il portafoglio di accesso rapido viene mostrata in basso a destra nella schermata di blocco. L'impostazione è true per impostazione predefinita, ma può essere disattivata dall'utente in Impostazioni > Display > Schermata di blocco > Mostra Wallet.

Android 11

In Android 11, la visibilità di Wallet con accesso rapido è controllata da due impostazioni sicure: GLOBAL_ACTIONS_PANEL_ENABLED e GLOBAL_ACTIONS_PANEL_AVAILABLE. La L'impostazione di AVAILABLE consente di stabilire se è possibile attivare e disattivare la funzionalità in Impostazioni. Questa impostazione è impostata su true da WalletPluginService Se QuickAccessWallet non è incluso nella build, l'impostazione rimane false. L'opzione ENABLED è impostata su true per impostazione predefinita nella stessa posizione. ma può essere disattivato dall'utente nelle Impostazioni. Per modificare il comportamento predefinito, modifica WalletPluginService#enableFeatureInSettings.

Convalida

Per convalidare l'implementazione del portafoglio ad accesso rapido, esegui CTS e manuale test. Le modifiche al plug-in devono anche esercitare test robolectrici.

Test CTS

Esegui i test CTS all'indirizzo cts/tests/quickaccesswallet

Test manuali per Android 12

Il test delle funzionalità principali di Wallet ad accesso rapido richiede un pagamento NFC terminale (reale o falso) e un'app di pagamento NFC che implementa QuickAccessWalletService (app portafoglio). Funzionalità principali che devono essere testate includono: disponibilità, stato zero, selezione delle carte e comportamento della schermata di blocco.

Disponibilità

  • Se l'app di pagamento NFC predefinita non supporta la funzione, il menu L'accesso a Wallet non è accessibile né tramite le impostazioni rapide né il blocco schermo.
  • Se l'app di pagamento NFC predefinita supporta la funzione, il metodo di accesso rapido Wallet è accessibile nell'area Impostazioni rapide.
  • Se l'app di pagamento NFC predefinita supporta la funzione e se L'impostazione LOCKSCREEN_SHOW_WALLET è true, il portafoglio ad accesso rapido è accessibili dalla schermata di blocco.
  • Se l'app di pagamento NFC predefinita supporta la funzione e se L'impostazione di LOCKSCREEN_SHOW_WALLET è false, mentre Wallet ad accesso rapido non lo è accessibili dalla schermata di blocco.

Stato zero

  • Se QuickAccessWalletService è abilitato ed esportato, ma non lo è inserisci eventuali schede, il riquadro nell'ombra appare come mostrato nella nella Figura 7. Se fai clic sul riquadro, si apre l'app di pagamento NFC predefinita.

    Riquadro di esempio nell&#39;area che mostra l&#39;app di pagamento NFC predefinita

    Figura 7. Riquadro di esempio nell'area che mostra l'app di pagamento NFC predefinita.

  • Facendo clic sulla visualizzazione dello stato vuoto, come mostrato nella Figura 8, si apre la app di pagamento NFC predefinita. Questa visualizzazione dello stato vuota viene mostrata solo quando l'utente ha ancora una carta nel portafoglio, la rimuove dai dettagli della carta per tornare alla visualizzazione Wallet.

  • La schermata di blocco mostra l'icona Wallet.

Visualizzazione dello stato vuota nel Wallet di accesso rapido

Figura 8. Visualizzazione dello stato vuota nell'interfaccia utente di Wallet ad accesso rapido.

Stato diverso da zero

  • Se l'app Wallet fornisce una o più carte, il riquadro nell'area come mostrato nella Figura 9.

    Riquadro di esempio nell&#39;area quando l&#39;app Wallet ha una o più carte

    Figura 9. Riquadro di esempio nell'area quando l'app Wallet ha una o più carte.

  • Se fai clic sul riquadro, viene visualizzato un carosello di schede.

  • Nella schermata di blocco è presente un pulsante che consente di aprire Wallet ad accesso rapido.

    UI di Wallet ad accesso rapido che mostra una scheda

    Figura 10. UI di Wallet ad accesso rapido con una scheda visualizzata.

  • Se la carta visualizzata rappresenta un metodo di pagamento NFC, tieni presente che telefono a un terminale di pagamento NFC comporta l'utilizzo di tale metodo di pagamento e la visualizzazione Wallet viene ignorata.

  • Se fai clic su una scheda visualizzata, si apre l'attività dettagliata della scheda.

  • Se QuickAccessWalletService fornisce più carte, l'utente possa scorrere le schede.

  • Il menu extra contiene una voce: aprire le impostazioni della schermata di blocco che l'utente può modificare l'opzione Mostra portafoglio.

Test dello stato di blocco

  • Se lo smartphone è bloccato, il portafoglio è visibile nelle impostazioni rapide l'area, con la descrizione Aggiungi una carta se non esiste una carta predefinita app di pagamento o sbloccarla per utilizzarla se sono presenti carte nell'app per pagamenti predefinita.
  • Se il telefono è bloccato, la visibilità di Wallet sulla schermata di blocco è controllata dall'impostazione Secure.LOCKSCREEN_SHOW_WALLET, che è controllato nelle Impostazioni.
  • Se lo smartphone è bloccato, LOCKSCREEN_SHOW_WALLET è false e nessuna carta esiste nell'app di pagamento NFC predefinita, il portafoglio non viene visualizzato schermata di blocco.
  • Se lo smartphone è bloccato, LOCKSCREEN_SHOW_WALLET è true e nessuna carta esiste nell'app di pagamento NFC predefinita, il portafoglio non viene visualizzato schermata di blocco.
  • Se il telefono è bloccato, il valore di LOCKSCREEN_SHOW_WALLET è true e le carte esistono nell'app di pagamento NFC predefinita, il portafoglio è visualizzato sulla serratura schermo.
  • Sblocco dello smartphone mentre il portafoglio è visualizzato sulla serratura la schermata mostra le schede con cui viene effettuata una query, diversi contenuti delle schede.

Test di accessibilità

  • Gli utenti di TalkBack possono navigare nella visualizzazione Wallet scorrendo verso sinistra e verso destra e ascoltando le descrizioni dei contenuti nelle schede.
  • Se scorri verso sinistra e verso destra con TalkBack attivato, puoi selezionare le schede una alla volta. Gli utenti di TalkBack possono selezionare e utilizzare un metodo di pagamento NFC tramite un pagamento NFC o nel terminale.

Test manuali per Android 11

Il test delle funzionalità principali di Wallet ad accesso rapido richiede un pagamento NFC terminale (reale o falso) e un'app di pagamento NFC che implementa QuickAccessWalletService (app portafoglio). Funzionalità principali che devono essere testate includono disponibilità, stato zero, selezione delle carte e comportamento della schermata di blocco.

Disponibilità

  • Se l'impostazione GLOBAL_ACTIONS_PANEL_ENABLED è true e il valore predefinito L'app per pagamenti NFC supporta la funzionalità, il portafoglio ad accesso rapido è accessibile.
  • Se l'impostazione GLOBAL_ACTIONS_PANEL_ENABLED è false e il valore predefinito L'app di pagamento NFC supporta la funzionalità, il portafoglio ad accesso rapido non accessibili.
  • Se l'impostazione GLOBAL_ACTIONS_PANEL_ENABLED è true e il valore predefinito L'app di pagamento NFC non supporta la funzionalità Wallet ad accesso rapido non accessibile.
  • Se l'impostazione GLOBAL_ACTIONS_PANEL_ENABLED è false e il valore predefinito L'app di pagamento NFC non supporta la funzionalità Wallet ad accesso rapido non accessibile.

Stato zero

  • Se QuickAccessWalletService è abilitato ed esportato, ma non lo è fornire eventuali carte, l'interfaccia utente di Wallet ad accesso rapido mostra la visualizzazione dello stato vuota.
  • Se fai clic sulla visualizzazione dello stato vuota, si apre l'app Wallet.

    Visualizzazione dello stato vuota nell&#39;interfaccia utente di Wallet ad accesso rapido
    Figura 11. Visualizzazione dello stato vuota nell'accesso rapido UI di Wallet.
    .

Stato diverso da zero

  • Se l'app Wallet fornisce una o più carte, le carte vengono visualizzate nell'interfaccia utente di Wallet ad accesso rapido.

    UI di Wallet ad accesso rapido che mostra una scheda
    Figura 12. UI di Wallet ad accesso rapido con una carta visualizzati.
    .
  • Se la carta visualizzata rappresenta un metodo di pagamento NFC, tieni in mano telefono a un terminale di pagamento NFC comporta l'utilizzo di tale metodo di pagamento e la visualizzazione Wallet viene ignorata.

  • Se fai clic su una carta mostrata, la visualizzazione Wallet viene chiusa e si apre attività dettagliate per la scheda in questione.

  • Se QuickAccessWalletService fornisce più carte, l'utente possa scorrere le schede.

  • Il menu extra contiene due voci: una per aprire l'app Wallet e quello che apre la sezione Mostra schede e la schermata delle tessere nelle Impostazioni.

Test dello stato di blocco

  • Se il telefono è bloccato, la visibilità del portafoglio è controllata dal Settings.Secure.POWER_MENU_LOCK_SHOW_CONTENT, che può essere controllato nelle Impostazioni.
  • Se lo smartphone è bloccato e POWER_MENU_LOCK_SHOW_CONTENT è false, il Wallet non è visualizzato.
  • Se lo smartphone è bloccato e POWER_MENU_LOCK_SHOW_CONTENT è true, il È visualizzato Wallet.
  • Sblocco dello smartphone mentre il portafoglio è visualizzato sulla serratura la schermata mostra le schede con una nuova query, il che potrebbe diversi contenuti delle schede.

Test di accessibilità

  • Gli utenti di TalkBack possono navigare nella visualizzazione Wallet scorrendo verso sinistra e verso destra e ascoltando le descrizioni dei contenuti nelle schede.
  • Scorrendo verso sinistra e verso destra con TalkBack attivato, si seleziona una scheda alla volta. Gli utenti di TalkBack possono selezionare e utilizzare un metodo di pagamento NFC tramite un pagamento NFC o nel terminale.