Portafoglio ad accesso rapido

La funzione Quick Access Wallet, disponibile da Android 11, consente all'utente di accedere alle carte di pagamento e ai relativi pass direttamente dal menu di alimentazione. I principali casi d'uso includono la selezione del metodo di pagamento appropriato prima di eseguire una transazione su un terminale NFC e l'accesso rapido a voli e altri pass per eventi imminenti.

In Android 12 o versioni successive, la funzione Quick Access Wallet è disponibile dall'ombra come mostrato nella Figura 1 e nella Figura 2.

Funzione Quick Access Wallet in ombra
Funzione raccoglitore Figura 1. Breve (dispositivo bloccato).
Funzione Quick Access Wallet in ombra
Caratteristica Portafoglio Figura 2. Accesso rapido (dispositivo sbloccato).

In Android 11, la funzione è disponibile dal menu di alimentazione come mostrato nella Figura 3.

Funzione Quick Access Wallet nel menu di alimentazione
Caratteristica Portafoglio Figura 3. Accesso rapido nel menu di potere.

Requisiti

Il tuo dispositivo deve avere NFC per utilizzare la funzione Quick Access Wallet. La funzione si lega al QuickAccessWalletService del pagamento NFC applicazione di default, il che significa che il dispositivo deve supportare NFC emulazione scheda basata su host (HCE) .

Panoramica delle funzioni

Ci sono due parti nel Portafoglio ad accesso rapido: l'interfaccia utente del Portafoglio ad accesso rapido e il fornitore della carta del Portafoglio ad accesso rapido.

In Android 12 o superiore, le piste Portafoglio UI di sistema di interfaccia utente e si trova in frameworks/base/packages/SystemUI/src/com/android/systemui/wallet . In Android 11, l'interfaccia utente del raccoglitore, che si trova a platform/packages/apps/QuickAccessWallet , devono essere installati e whitelist.

Il fornitore della carta Quick Access Wallet è l'app di pagamento NFC predefinita. Gli utenti possono avere più applicazioni di pagamento NFC installati contemporaneamente, ma solo il pagamento NFC applicazione di default possono mostrare le carte sul menu di potenza. È possibile specificare quali app pagamento NFC è impostata come predefinita inizialmente, ma gli utenti possono selezionare un'altra applicazione in Impostazioni. Se è installato un solo NFC pagamento app, diventa il default automaticamente (vedi CardEmulationManager ).

Implementazione

Per fornire le carte al portafoglio interfaccia utente di accesso rapido, NFC applicazioni di pagamento devono implementare QuickAccessWalletService . Le app di pagamento devono includere una voce manifest che pubblicizza il servizio.

Per garantire che solo l'interfaccia utente del sistema può legarsi al QuickAccessWalletService , il pagamento NFC applicazione deve richiedere l' android.permission.BIND_QUICK_ACCESS_WALLET_SERVICE permesso. Che richiedono questa autorizzazione assicura che solo l'interfaccia utente del sistema può legarsi 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>

Ulteriori informazioni sul portafoglio sono incluse nel file XML collegato:

<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'applicazione 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, inizia un'attività per visualizzare lo stato di avanzamento e l'esito del pagamento, dovrebbe anche cercare di ottenere un riferimento al limite QuickAccessWalletService e chiamare QuickAccessWalletService#sendEvent con un tipo di evento di TYPE_NFC_PAYMENT_STARTED . Ciò fa sì che l'interfaccia utente di Quick Access Wallet venga ignorata, consentendo così all'utente una visione senza ostacoli dell'attività di pagamento.

Per ulteriore documentazione sull'implementazione QuickAccessWalletService , vedere QuickAccessWalletService e la TestQuickAccessWalletService test di CTS.

Abilitazione dell'interfaccia utente di Quick Access Wallet in Android 11

Per configurare il portafoglio di accesso rapido per essere disponibile nel menu di potenza in Android 11, includere il QuickAccessWallet bersaglio nella build e abilitare il globalactions.wallet plug aggiungendo la riga in grassetto nel codice di esempio sotto alla overlay/frameworks/base/packages/SystemUI/res/values/config.xml file.

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

Specificare il pagamento NFC applicazione di default nel file di configurazione delle impostazioni utilizzando def_nfc_payment_component .

La NFC pagamento app di default deve esporre QuickAccessWalletService per fornire carte Wallet Accesso rapido. Se l'app di pagamento NFC predefinita non esporta questo servizio, l'interfaccia utente del portafoglio è nascosta.

Dettagli sull'implementazione di QuickAccessWalletService

QuickAccessWalletService ha tre metodi astratti che devono essere attuate: onWalletCardsRequested , onWalletCardSelected e onWalletDismissed . Il diagramma della sequenza di seguito illustra una sequenza di chiamate quando il Quick Access Wallet viene visualizzato immediatamente prima di un pagamento NFC.

Diagramma di sequenza del portafoglio ad accesso rapido

Esempio di sequenza di chiamate quando viene visualizzato Quick Access Wallet
Figura 4. Esempio sequenza di chiamata quando raccoglitore Accesso rapido viene visualizzato.

Non tutte le visualizzazioni del Portafoglio di accesso rapido sono seguiti da un pagamento NFC, ma Figura 4 di cui sopra illustra tutte le funzionalità di QuickAccessWalletService . In questo esempio, il fornitore della carta Quick Access Wallet implementa gli elementi delineati in blu. Si presume che le carte di pagamento sono memorizzati sul dispositivo in un database e sono accessibili tramite un'interfaccia denominata PaymentCardManager . Si assume inoltre che un'attività chiamato PaymentActivity visualizza il risultato di un pagamento NFC. Il flusso procede come segue:

  1. L'utente esegue un gesto per visualizzare il Portafoglio di accesso rapido.
  2. Il Portafoglio interfaccia utente di accesso rapido (parte del sistema UI) controlla il gestore di pacchetti per vedere se il pagamento NFC applicazione predefinita esporta QuickAccessWalletService .

    • Se il servizio non viene esportato, il Quick Access Wallet non viene visualizzato.
  3. L'accesso rapido Portafoglio UI lega al QuickAccessWalletService e chiamate onWalletCardsRequested . Questo metodo accetta un oggetto di richiesta contenente dati sul numero e la dimensione delle carte che possono essere fornite e un callback. Il callback può essere chiamato da un thread in background.

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

  5. Non appena vengono visualizzate le schede, l'interfaccia utente sistema avvisa QuickAccessWalletService che la prima carta è stata selezionata chiamando onWalletCardSelected .

    • onWalletCardSelected è chiamato ogni volta che l'utente seleziona una nuova scheda.
    • onWalletCardSelected potrebbe essere chiamato anche se la scheda selezionata non è cambiata.
  6. Quando l'utente chiude la Portafoglio di accesso rapido, il sistema di interfaccia utente Notifica QuickAccessWalletService chiamando onWalletDismissed .

Nell'esempio sopra, l'utente porta il telefono nel raggio di portata di un terminale di pagamento NFC mentre viene visualizzato il portafoglio. Un componente chiave di gestione dei pagamenti NFC è HostApduService , che devono essere attuati per APDUs processo forniti dal lettore NFC (per ulteriori informazioni, vedere emulazione scheda host-based ). Si presume che l'app di pagamento avvii un'attività per visualizzare lo stato di avanzamento e il risultato dell'interazione con il terminale NFC. Tuttavia, l'interfaccia utente di Quick Access Wallet viene visualizzata nella parte superiore della finestra dell'app, il che significa che l'attività di pagamento è oscurata dall'interfaccia utente di Quick Access Wallet. Per correggere questo problema, l'app deve notificare all'interfaccia utente di sistema che l'interfaccia utente di Quick Access Wallet deve essere chiusa. Si può fare in modo da ottenere un riferimento al limite QuickAccessWalletService e chiamando sendWalletServiceEvent con il tipo di evento TYPE_NFC_PAYMENT_STARTED .

Implementazione di esempio 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 maggiori dettagli circa QuickAccessWalletService , vedere QuickAccessWalletService riferimento API .

permessi

La voce manifesto QuickAccessWalletService deve richiedere l' android.permission.BIND_QUICK_ACCESS_WALLET_SERVICE autorizzazione introdotto in Android 11. Questo è un un'autorizzazione a livello di firma tenuto dal sistema di interfaccia utente, il che significa che solo il processo di sistema di interfaccia utente può legarsi a implementazioni di QuickAccessWalletService . Essere consapevoli del fatto che le applicazioni laterali-caricati possono rivendicare questo permesso e ottenere pieno accesso a QuickAccessWalletService i dati su dispositivi con Android 10 o abbassare. Per evitare questo, è consigliabile che il servizio di controllare la versione di generazione in onCreate e attivare il servizio solo su dispositivi con Android 11 e superiori. Non sono necessarie altre autorizzazioni per le app oltre a quelle necessarie per fornire servizi di pagamento di emulazione della carta host.

Se il pagamento NFC applicazione di default non implementa o esportare QuickAccessWalletService , non viene visualizzata l'interfaccia utente Portafoglio di accesso rapido.

Impostazioni in Android 12

Per attivare o disattivare il Portafoglio di accesso rapido dalla schermata di blocco, gli utenti possono utilizzare la Mostra portafogli ginocchiera in Impostazioni> Display> Blocco schermo. Per disabilitare il portafoglio nell'ombra, gli utenti devono modificarlo manualmente nell'ombra delle impostazioni rapide.

Attiva o disattiva il portafoglio dalla schermata di blocco

Figura 5. Mostra portafogli a levetta nella schermata di blocco in Impostazioni.

Impostazioni in Android 11

Gli utenti possono disattivare la funzione Quick Access Wallet dall'app Impostazioni. La pagina delle impostazioni si trova in Impostazioni> Sistema> Gesti> Carte e passaggi.

Pagina delle impostazioni per abilitare o disabilitare la funzione Quick Access Wallet
Figura pagina 6. Impostazioni per attivare o disattivare la funzione di accesso rapido Portafoglio.

personalizzazione

Aggiunta della vista Portafoglio ad accesso rapido in un'altra posizione nell'interfaccia utente di sistema

Il Portafoglio interfaccia utente di accesso rapido è costruito come un plug-in di sistema . Anche se le marche di implementazione AOSP uso in GlobalActionsDialog (indicato sulla pressa di potere a lungo), è possibile spostare la funzione dietro un gesto diverso fino a quando si mantiene il contratto specificato dall'interfaccia plugin.

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);
  }
}

I Portafogli di interfaccia utente di accesso rapido implementa GlobalActionsPanelPlugin e PanelViewController . GlobalActionsDialog riceve un'istanza del plugin portafoglio utilizzando com.android.systemui.Dependency :

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

Dopo aver verificato che il plugin non è nullo e che il PanelViewController restituito da onPanelShown non è nullo, la finestra di dialogo attribuisce la View fornita da getPanelContent alla propria View e fornisce callback appropriati per gli 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 Portafoglio di accesso rapido dal menu di potenza, omettere il QuickAccessWallet destinazione dalla costruzione del sistema. Per rimuovere il Portafoglio di accesso rapido dal menu di potere, ma aggiungerlo a un diverso sistema di interfaccia utente disponibile view, includere il target di compilazione e riferimenti Rimuovi per il GlobalActionsPanelPlugin da GlobalActionsImpl .

Impostazione delle configurazioni predefinite

Android 12

In Android 12 o versioni successive, il Portafoglio di accesso rapido è sempre visibile nell'ombra delle impostazioni rapide. Visibilità del portafoglio di accesso rapido nella schermata di blocco è recintato dal seguente impostazione sicura: LOCKSCREEN_SHOW_WALLET . Questa impostazione controlla se l'icona Quick Access Wallet viene mostrata in basso a destra nella schermata di blocco. Questa impostazione è impostata su true per impostazione predefinita, ma può essere disattivata dall'utente in Impostazioni> Display> Blocco schermo> Visualizza portafoglio.

Android 11

In Android 11, visibilità Portafoglio di accesso rapido è recintato da due impostazioni sicure: GLOBAL_ACTIONS_PANEL_ENABLED e GLOBAL_ACTIONS_PANEL_AVAILABLE . I AVAILABLE impostazione controlla se la funzione può essere attivata e disattivata in Impostazioni. Questa impostazione è impostata su true per WalletPluginService . Se QuickAccessWallet non è inclusa nella build, l'impostazione rimane false . L' ENABLED è impostata su true per impostazione predefinita nello stesso luogo, ma può essere disattivata dall'utente in Impostazioni. Per modificare il comportamento predefinito, modificare WalletPluginService#enableFeatureInSettings .

Convalida

Per convalidare la tua implementazione del Quick Access Wallet, esegui CTS e test manuali. Le modifiche al plugin dovrebbe anche esercitare le inclusi test robolectric .

test CTS

Eseguire i test CTS situati cts/tests/quickaccesswallet .

Test manuali per Android 12

Testare le caratteristiche principali del Portafoglio di accesso rapido richiede un terminale di pagamento NFC (falso o vero) e un pagamento applicazione NFC che implementa QuickAccessWalletService (Wallet). Le funzionalità principali che devono essere testate includono: disponibilità, stato zero, selezione della carta e comportamento della schermata di blocco.

Disponibilità

  • Se l'app di pagamento NFC predefinita non supporta la funzione, Quick Access Wallet non è accessibile né nelle impostazioni rapide né nella schermata di blocco.
  • Se l'app di pagamento NFC predefinita supporta la funzione, Quick Access Wallet è accessibile nell'area delle impostazioni rapide.
  • Se il pagamento NFC applicazione di default supporta la funzione e se la LOCKSCREEN_SHOW_WALLET impostazione è true , il portafoglio di accesso rapido è accessibile sulla schermata di blocco.
  • Se il pagamento NFC applicazione di default supporta la funzione e se la LOCKSCREEN_SHOW_WALLET impostazione è false , il Portafoglio di accesso rapido non è accessibile sulla schermata di blocco.

stato zero

  • Se QuickAccessWalletService è abilitata e esportato, ma non fornisce alcuna carta, la piastrella nei appare Penombra come mostrato nell'esempio in figura 7. Facendo clic sulla piastrella sbloccato il pagamento NFC app predefinita.

    Esempio di riquadro in ombra che mostra l'app di pagamento NFC predefinita

    Figura 7. Esempio di piastrelle in ombra mostrando predefinita NFC pagamento app.

  • Facendo clic sulla visualizzazione dello stato vuoto come mostrato nella Figura 8 si apre l'app di pagamento NFC predefinita. Questa visualizzazione dello stato vuoto viene visualizzata solo quando l'utente ha una carta rimasta nel portafoglio, rimuove la carta dalla pagina dei dettagli della carta e quindi torna alla visualizzazione del portafoglio.

  • La schermata di blocco mostra l'icona del portafoglio.

Visualizzazione dello stato vuoto nel Portafoglio di accesso rapido

Figura 8. vuoto stato di visualizzazione nel raccoglitore UI Accesso rapido.

Stato diverso da zero

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

    Esempio di riquadro in ombra quando l'app wallet ha una o più carte

    Figura 9. Esempio di piastrelle in ombra quando raccoglitore applicazione ha una o più carte.

  • Facendo clic sul riquadro viene visualizzato un carosello di carte.

  • La schermata di blocco mostra un pulsante che apre il Portafoglio di accesso rapido.

    Interfaccia utente del portafoglio ad accesso rapido con una carta visualizzata

    Figura 10. Accesso rapido Portafoglio UI con una carta visualizzata.

  • Se la carta visualizzata rappresenta un metodo di pagamento NFC, avvicinando il telefono a un terminale di pagamento NFC verrà utilizzato quel metodo di pagamento e la visualizzazione del portafoglio viene ignorata.

  • Facendo clic su una scheda visualizzata si apre l'attività dettagliata per quella scheda.

  • Se più schede sono forniti da QuickAccessWalletService , l'utente è in grado di scorrere tra le schede.

  • Il menu di overflow contiene una voce: aprire le impostazioni di blocco dello schermo in modo che l'utente può modificare l'opzione Mostra portafoglio.

Test dello stato di blocco

  • Se il telefono è bloccato, il portafoglio è visibile sulla tonalità Impostazioni rapide, con la descrizione di Aggiungi una carta se nessuna carta esiste in app di pagamento predefinito, o di sblocco per utilizzare se esistono le carte in app di pagamento predefinito.
  • Se il telefono è bloccato, la visibilità portafoglio sulla schermata di blocco è controllato dalla Secure.LOCKSCREEN_SHOW_WALLET impostazione, che è controllata in Impostazioni.
  • Se il telefono è bloccato, LOCKSCREEN_SHOW_WALLET è false , e non esiste nessuna carta nel pagamento NFC applicazione di default, il portafoglio non viene visualizzato sullo schermo di blocco.
  • Se il telefono è bloccato, LOCKSCREEN_SHOW_WALLET è true , e non esiste nessuna carta nel pagamento NFC applicazione di default, il portafoglio non viene visualizzato sullo schermo di blocco.
  • Se il telefono è bloccato, LOCKSCREEN_SHOW_WALLET è true , e le carte esiste nel pagamento NFC applicazione di default, il portafoglio viene visualizzato sulla schermata di blocco.
  • Lo sblocco del telefono mentre il portafoglio è visualizzato sulla schermata di blocco comporta la richiesta delle carte, che potrebbe comportare un contenuto diverso della carta.

Test di accessibilità

  • Gli utenti di Talkback possono navigare nella visualizzazione del portafoglio scorrendo verso sinistra e verso destra e ascoltando le descrizioni dei contenuti delle carte.
  • Scorrendo verso sinistra e verso destra con Talkback abilitato, si seleziona ciascuna carta a turno. Gli utenti Talkback possono selezionare e utilizzare un metodo di pagamento NFC su un terminale di pagamento NFC.

Test manuali per Android 11

Testare le caratteristiche principali del Portafoglio di accesso rapido richiede un terminale di pagamento NFC (falso o vero) e un pagamento applicazione NFC che implementa QuickAccessWalletService (Wallet). Le funzionalità principali che devono essere testate includono disponibilità, stato zero, selezione della carta e comportamento della schermata di blocco.

Disponibilità

  • Se l' GLOBAL_ACTIONS_PANEL_ENABLED impostazione è true e il pagamento NFC applicazione di default supporta la funzione, il portafoglio di accesso rapido è accessibile.
  • Se l' GLOBAL_ACTIONS_PANEL_ENABLED impostazione è false e il pagamento NFC applicazione di default supporta la funzione, il Portafoglio di accesso rapido non è accessibile.
  • Se l' GLOBAL_ACTIONS_PANEL_ENABLED impostazione è true e il pagamento NFC applicazione di default non supporta la funzione, il Portafoglio di accesso rapido non è accessibile.
  • Se l' GLOBAL_ACTIONS_PANEL_ENABLED impostazione è false e il pagamento NFC applicazione di default non supporta la funzione, il Portafoglio di accesso rapido non è accessibile.

stato zero

  • Se QuickAccessWalletService è attivata ed esportata, ma non fornisce alcuna carta, il portafoglio di interfaccia utente visualizza di accesso rapido La vista stato di vuoto.
  • Facendo clic sulla visualizzazione dello stato vuoto si apre l'app del portafoglio.

    Visualizzazione dello stato vuoto nell'interfaccia utente di Quick Access Wallet
    Figura 11. Vuoto stato di visualizzazione nel portafoglio utente di accesso rapido.

Stato diverso da zero

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

    Interfaccia utente del portafoglio ad accesso rapido con una carta visualizzata
    Figura 12. Accesso rapido Portafoglio UI con una carta visualizzata.
  • Se la carta visualizzata rappresenta un metodo di pagamento NFC, avvicinando il telefono a un terminale di pagamento NFC verrà utilizzato quel metodo di pagamento e la visualizzazione del portafoglio viene ignorata.

  • Facendo clic su una carta visualizzata si chiude la visualizzazione del portafoglio e si apre l'attività dettagliata per quella carta.

  • Se più schede sono forniti da QuickAccessWalletService , l'utente è in grado di scorrere tra le schede.

  • Il menu di overflow contiene due voci: quella che apre l'applicazione portafoglio e uno che apre le Mostra schede e passa schermata in Impostazioni.

Test dello stato di blocco

  • Se il telefono è bloccato, la visibilità raccoglitore è controllata dal Settings.Secure.POWER_MENU_LOCK_SHOW_CONTENT impostazione, che può essere controllato in Impostazioni.
  • Se il telefono è bloccato e POWER_MENU_LOCK_SHOW_CONTENT è false , non viene visualizzato il portafoglio.
  • Se il telefono è bloccato e POWER_MENU_LOCK_SHOW_CONTENT è true , viene visualizzato il portafoglio.
  • Lo sblocco del telefono mentre il portafoglio è visualizzato sulla schermata di blocco comporta la nuova richiesta delle carte, il che potrebbe comportare un contenuto diverso della carta.

Test di accessibilità

  • Gli utenti di TalkBack possono navigare nella visualizzazione del portafoglio scorrendo verso sinistra e verso destra e ascoltando le descrizioni dei contenuti delle carte.
  • Scorrendo verso sinistra e verso destra con TalkBack abilitato, si seleziona una carta a turno. Gli utenti di TalkBack possono selezionare e utilizzare un metodo di pagamento NFC su un terminale di pagamento NFC.