La funzionalità Accesso rapido a Wallet, disponibile a partire da Android 11, consente all'utente di accedere alle carte di pagamento e alle tessere pertinenti direttamente dal menu del tasto di accensione. I principali casi d'uso includono la selezione del metodo di pagamento appropriato prima di eseguire una transazione presso un terminale NFC e l'accesso rapido a voli e altre tessere per eventi imminenti.
In Android 12 o versioni successive, la funzionalità Accesso rapido a Wallet è disponibile dalla tendina, come mostrato nelle Figure 1 e 2.
|
|
In Android 11, la funzionalità è disponibile dal menu del tasto di accensione, come mostrato nella Figura 3.
Requisiti
Per utilizzare la funzionalità Accesso rapido a Wallet, il dispositivo deve disporre della tecnologia NFC. La funzionalità
è associata a QuickAccessWalletService dell'app di pagamento NFC predefinita, il che significa
che il dispositivo deve supportare anche l'emulazione della carta basata su host NFC
(HCE).
Panoramica delle funzionalità
L'accesso rapido a Wallet è composto da due parti: la UI di accesso rapido a Wallet e l'emittente della carta di accesso rapido a Wallet.
In Android 12 o versioni successive, la UI di Wallet viene eseguita nella UI di sistema e si trova in
frameworks/base/packages/SystemUI/src/com/android/systemui/wallet. In
Android 11, la UI di Wallet, che si trova in
platform/packages/apps/QuickAccessWallet,
deve essere installata e inserita nella lista consentita.
L'emittente della carta di accesso rapido a Wallet è l'app di pagamento NFC predefinita. Gli utenti possono avere più app di pagamento NFC installate contemporaneamente, ma solo l'app di pagamento NFC predefinita può mostrare le carte nel menu del tasto di accensione. Puoi specificare quale app di pagamento NFC è impostata come predefinita inizialmente, ma gli utenti possono selezionare un'app diversa nelle Impostazioni. Se è installata una sola app di pagamento NFC, questa diventa automaticamente l'app
predefinita (vedi
CardEmulationManager).
Implementazione
Per fornire le carte alla UI di accesso rapido a Wallet, le app di pagamento NFC
devono implementare
QuickAccessWalletService.
Le app di pagamento devono includere una voce del file manifest che pubblicizza il servizio.
Per assicurarsi che solo la UI di sistema possa eseguire il binding a QuickAccessWalletService, l'app di pagamento NFC deve richiedere l'autorizzazione android.permission.BIND_QUICK_ACCESS_WALLET_SERVICE. La richiesta di questa autorizzazione garantisce che solo la UI di sistema possa eseguire il binding 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 wallet 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'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,
avvia un'attività per visualizzare l'avanzamento e il risultato del pagamento, deve
anche provare a ottenere un riferimento a QuickAccessWalletService associato e chiamare
QuickAccessWalletService#sendEvent con un tipo di evento
TYPE_NFC_PAYMENT_STARTED. In questo modo, la UI di accesso rapido a Wallet viene chiusa, consentendo all'utente di visualizzare senza ostacoli l'attività di pagamento.
Per ulteriore documentazione sull'implementazione di QuickAccessWalletService, consulta
QuickAccessWalletService
e il
TestQuickAccessWalletService
test CTS.
Attivare la UI di accesso rapido a Wallet in Android 11
Per configurare l'accesso rapido a Wallet in modo che sia disponibile dal menu del tasto di accensione
in Android 11, includi la
QuickAccessWallet
destinazione nella build e attiva il globalactions.wallet plug-in aggiungendo
la riga in grassetto nell'esempio di codice riportato di seguito al
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>
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 le carte all'accesso rapido a Wallet. Se l'app di pagamento NFC predefinita non esporta questo servizio, la UI di Wallet è nascosta.
Dettagli sull'implementazione di QuickAccessWalletService
QuickAccessWalletService ha tre metodi astratti che devono essere implementati: onWalletCardsRequested, onWalletCardSelected e onWalletDismissed. Il diagramma di sequenza riportato di seguito illustra una sequenza di chiamate quando l'accesso rapido a Wallet viene visualizzato immediatamente prima di un pagamento NFC.
Non tutte le visualizzazioni dell'accesso rapido a Wallet sono seguite da un pagamento NFC, ma la Figura 4 sopra illustra tutte le funzionalità di QuickAccessWalletService. In questo esempio, il fornitore di schede di accesso rapido a Wallet implementa gli elementi evidenziati in blu. Si presuppone che le carte di pagamento siano memorizzate sul dispositivo in un database e che sia possibile accedervi tramite un'interfaccia denominata PaymentCardManager. Si presuppone inoltre che un'attività denominata PaymentActivity visualizzi il risultato di un pagamento NFC. Il flusso procede come segue:
- L'utente esegue un gesto per visualizzare l'accesso rapido a Wallet.
La UI di accesso rapido a Wallet (parte della UI di sistema) controlla il gestore dei pacchetti per verificare se l'app di pagamento NFC predefinita esporta
QuickAccessWalletService.- Se il servizio non viene esportato, l'accesso rapido a Wallet non viene visualizzato.
La UI di accesso rapido a Wallet esegue il binding a
QuickAccessWalletServicee chiamaonWalletCardsRequested. Questo metodo accetta un oggetto di richiesta contenente dati sul numero e sulle dimensioni delle carte che possono essere fornite e un callback. Il callback può essere chiamato da un thread in background.QuickAccessWalletServicecalcola le carte che vuole mostrare, quindi chiama il metodoonSuccesssul callback fornito. È consigliabile che il servizio esegua queste azioni su un thread in background.Non appena le carte vengono visualizzate, la UI di sistema notifica a
QuickAccessWalletServiceche la prima carta è stata selezionata chiamandoonWalletCardSelected.onWalletCardSelectedviene chiamato ogni volta che l'utente seleziona una nuova carta.onWalletCardSelectedpotrebbe essere chiamato anche se la carta attualmente selezionata non è cambiata.
Quando l'utente chiude l'accesso rapido a Wallet, la UI di sistema notifica a
QuickAccessWalletServicechiamandoonWalletDismissed.
Nell'esempio precedente, l'utente avvicina lo smartphone a un terminale di pagamento NFC mentre il wallet è visualizzato. Un componente chiave della gestione dei pagamenti NFC
è HostApduService, che deve essere implementato per elaborare gli APDU
forniti dal lettore NFC (per ulteriori informazioni, vedi
Emulazione della carta basata su host).
Si presuppone che l'app di pagamento avvii un'attività per visualizzare l'avanzamento e il risultato dell'interazione con il terminale NFC. Tuttavia, la UI di accesso rapido a Wallet viene visualizzata sopra la finestra dell'app, il che significa che l'attività di pagamento è oscurata dalla UI di accesso rapido a Wallet. Per risolvere questo problema, l'app deve notificare alla UI di sistema che la UI di accesso rapido a Wallet deve essere chiusa. Per farlo, può ottenere un riferimento a QuickAccessWalletService associato e chiamare sendWalletServiceEvent con il tipo di evento 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
QuickAccessWalletService riferimento API.
Autorizzazioni
La voce del file manifest per QuickAccessWalletService deve richiedere l'autorizzazione android.permission.BIND_QUICK_ACCESS_WALLET_SERVICE introdotta in Android 11. Si tratta di un'autorizzazione a livello di firma detenuta dalla UI di sistema, il che significa che solo il processo della UI di sistema può eseguire il binding alle implementazioni di QuickAccessWalletService. Tieni presente che le app con caricamento laterale possono richiedere questa autorizzazione e ottenere l'accesso completo ai dati di QuickAccessWalletService sui dispositivi con Android 10 o versioni precedenti. Per evitare questo problema, è consigliabile che il servizio controlli la versione della build in onCreate e attivi il servizio solo sui dispositivi con Android 11 e versioni successive. Non sono richieste altre autorizzazioni app oltre a quelle necessarie per fornire i servizi di pagamento di Host Card Emulation.
Se l'app di pagamento NFC predefinita non implementa o non esporta QuickAccessWalletService, la UI di accesso rapido a Wallet non viene visualizzata.
Impostazioni in Android 12
Per attivare o disattivare l'accesso rapido a Wallet dalla schermata di blocco, gli utenti possono utilizzare l'opzione Mostra wallet in Impostazioni > Display > Schermata di blocco. Per disattivare il wallet nella tendina, gli utenti devono modificarlo manualmente nella tendina delle Impostazioni rapide.
Figura 5. Opzione Mostra wallet nella pagina Schermata di blocco in Impostazioni.
Impostazioni in Android 11
Gli utenti possono disattivare la funzionalità Accesso rapido a Wallet dall'app Impostazioni. La pagina delle impostazioni si trova in Impostazioni > Sistema > Gesti > Carte e tessere.
Personalizzazione
Aggiungere la visualizzazione dell'accesso rapido a Wallet a un'altra posizione nella UI di sistema
La
UI di accesso rapido a Wallet
è creata come
plug-in di sistema.
Sebbene l'implementazione AOSP lo utilizzi in
GlobalActionsDialog
(visualizzato con una pressione prolungata del pulsante di accensione), puoi spostare la funzionalità dietro un gesto diverso,
a condizione che tu 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 accesso rapido a Wallet
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 non sia null e che PanelViewController
restituito da onPanelShown non sia null, la finestra di dialogo collega la View fornita
da getPanelContent alla propria View e fornisce i 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 l'accesso rapido a Wallet dal menu del tasto di accensione, ometti la destinazione QuickAccessWallet dalla build di sistema. Per rimuovere l'accesso rapido a Wallet dal menu del tasto di accensione, ma aggiungerlo a una visualizzazione diversa fornita dalla UI di sistema, includi la destinazione della build e rimuovi i riferimenti a GlobalActionsPanelPlugin da GlobalActionsImpl.
Impostare le configurazioni predefinite
Android 12
In Android 12 o versioni successive, l'accesso rapido a Wallet è sempre visibile nella tendina delle Impostazioni rapide. La visibilità dell'accesso rapido a Wallet nella schermata di blocco è controllata dalla seguente impostazione di sicurezza: LOCKSCREEN_SHOW_WALLET. Questa impostazione controlla se l'icona di accesso rapido a Wallet viene visualizzata in basso a destra nella schermata di blocco. Questa impostazione è impostata su true per impostazione predefinita, ma l'utente può disattivarla in Impostazioni > Display > Schermata di blocco > Mostra wallet.
Android 11
In Android 11, la visibilità dell'accesso rapido a Wallet è controllata da due impostazioni di sicurezza: GLOBAL_ACTIONS_PANEL_ENABLED e GLOBAL_ACTIONS_PANEL_AVAILABLE. L'impostazione AVAILABLE controlla se la funzionalità può essere attivata e disattivata nelle Impostazioni. Questa impostazione è impostata su true da
WalletPluginService.
Se QuickAccessWallet non è incluso nella build, l'impostazione rimane false. L'impostazione ENABLED è impostata su true per impostazione predefinita nella stessa posizione, ma l'utente può disattivarla nelle Impostazioni. Per modificare il comportamento predefinito, modifica WalletPluginService#enableFeatureInSettings.
Convalida
Per convalidare l'implementazione dell'accesso rapido a Wallet, esegui i test CTS e manuali. Le modifiche al plug-in devono anche esercitare i test Robolectric inclusi .
Test CTS
Esegui i test CTS che si trovano in
cts/tests/quickaccesswallet.
Test manuali per Android 12
Per testare le funzionalità principali dell'accesso rapido a Wallet sono necessari un terminale di pagamento NFC (reale o fittizio) e un'app di pagamento NFC che implementi QuickAccessWalletService (app 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 funzionalità, l'accesso rapido a Wallet non è accessibile né nelle Impostazioni rapide né nella schermata di blocco.
- Se l'app di pagamento NFC predefinita supporta la funzionalità, l'accesso rapido a Wallet è accessibile nella tendina delle Impostazioni rapide.
- Se l'app di pagamento NFC predefinita supporta la funzionalità e l'impostazione
LOCKSCREEN_SHOW_WALLETètrue, l'accesso rapido a Wallet è accessibile nella schermata di blocco. - Se l'app di pagamento NFC predefinita supporta la funzionalità e l'impostazione
LOCKSCREEN_SHOW_WALLETèfalse, l'accesso rapido a Wallet non è accessibile nella schermata di blocco.
Stato zero
Se
QuickAccessWalletServiceè attivato ed esportato, ma non fornisce alcuna carta, il riquadro nella tendina viene visualizzato come nell'esempio della Figura 7. Se fai clic sul riquadro, si apre l'app di pagamento NFC predefinita.
Figura 7. Esempio di riquadro nella tendina che mostra l'app di pagamento NFC predefinita.
Se fai 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 all'utente rimane una carta nel wallet, rimuove la carta dalla pagina dei dettagli della carta e poi torna alla visualizzazione del wallet.
La schermata di blocco mostra l'icona del wallet.
Figura 8. Visualizzazione dello stato vuoto nella UI di accesso rapido a Wallet.
Stato diverso da zero
Se l'app Wallet fornisce una o più carte, il riquadro nella tendina viene visualizzato come nella Figura 9.
Figura 9. Esempio di riquadro nella tendina quando l'app Wallet ha una o più carte.
Se fai clic sul riquadro, viene visualizzato un carosello di schede.
La schermata di blocco mostra un pulsante che apre l'accesso rapido a Wallet.
Figura 10. UI di accesso rapido a Wallet con una carta visualizzata.
Se la carta visualizzata rappresenta un metodo di pagamento NFC, tenendo lo smartphone vicino a un terminale di pagamento NFC viene utilizzato il metodo di pagamento e la visualizzazione del wallet viene chiusa.
Se fai clic su una carta visualizzata, si apre l'attività dettagliata per quella carta.
Se
QuickAccessWalletServicefornisce più carte, l'utente può scorrere tra le carte.Il menu extra contiene una voce: apri le impostazioni della schermata di blocco in modo che l'utente possa modificare l'opzione Mostra wallet.
Test dello stato di blocco
- Se lo smartphone è bloccato, il wallet è visibile nella tendina delle Impostazioni rapide, con una descrizione Aggiungi una carta se non esiste alcuna carta nell'app di pagamento predefinita o Sblocca per utilizzare se esistono carte nell'app di pagamento predefinita.
- Se lo smartphone è bloccato, la visibilità del wallet nella schermata di blocco è controllata dall'impostazione
Secure.LOCKSCREEN_SHOW_WALLET, che può essere controllata nelle Impostazioni. - Se lo smartphone è bloccato,
LOCKSCREEN_SHOW_WALLETèfalsee non esiste alcuna carta nell'app di pagamento NFC predefinita, il wallet non viene visualizzato nella schermata di blocco. - Se lo smartphone è bloccato,
LOCKSCREEN_SHOW_WALLETètruee non esiste alcuna carta nell'app di pagamento NFC predefinita, il wallet non viene visualizzato nella schermata di blocco. - Se lo smartphone è bloccato,
LOCKSCREEN_SHOW_WALLETètruee esistono carte nell'app di pagamento NFC predefinita, il wallet viene visualizzato nella schermata di blocco. - Se sblocchi lo smartphone mentre il wallet è visualizzato nella schermata di blocco, le carte vengono richieste di nuovo, il che potrebbe comportare contenuti diversi per le carte.
Test di accessibilità
- Gli utenti di TalkBack possono navigare nella visualizzazione del wallet scorrendo verso sinistra e verso destra e ascoltando le descrizioni dei contenuti delle carte.
- Se scorri verso sinistra e verso destra con TalkBack attivato, ogni carta viene selezionata a turno. Gli utenti di TalkBack possono selezionare e utilizzare un metodo di pagamento NFC presso un terminale di pagamento NFC.
Test manuali per Android 11
Per testare le funzionalità principali dell'accesso rapido a Wallet sono necessari un terminale di pagamento NFC (reale o fittizio) e un'app di pagamento NFC che implementi QuickAccessWalletService (app Wallet). Le funzionalità principali che devono essere testate includono disponibilità, stato zero, selezione della carta e comportamento della schermata di blocco.
Disponibilità
- Se l'impostazione
GLOBAL_ACTIONS_PANEL_ENABLEDètruee l'app di pagamento NFC predefinita supporta la funzionalità, l'accesso rapido a Wallet è accessibile. - Se l'impostazione
GLOBAL_ACTIONS_PANEL_ENABLEDèfalsee l'app di pagamento NFC predefinita supporta la funzionalità, l'accesso rapido a Wallet non è accessibile. - Se l'impostazione
GLOBAL_ACTIONS_PANEL_ENABLEDètruee l'app di pagamento NFC predefinita non supporta la funzionalità, l'accesso rapido a Wallet non è accessibile. - Se l'impostazione
GLOBAL_ACTIONS_PANEL_ENABLEDèfalsee l'app di pagamento NFC predefinita non supporta la funzionalità, l'accesso rapido a Wallet non è accessibile.
Stato zero
- Se
QuickAccessWalletServiceè attivato ed esportato, ma non fornisce alcuna carta, la UI di accesso rapido a Wallet visualizza la visualizzazione dello stato vuoto. Se fai clic sulla visualizzazione dello stato vuoto, si apre l'app Wallet.
Figura 11. Visualizzazione dello stato vuoto nella UI di accesso rapido a Wallet.
Stato diverso da zero
Se l'app Wallet fornisce una o più carte, le carte vengono visualizzate nella UI di accesso rapido a Wallet.
Figura 12. UI di accesso rapido a Wallet con una carta visualizzata. Se la carta visualizzata rappresenta un metodo di pagamento NFC, tenendo lo smartphone vicino a un terminale di pagamento NFC viene utilizzato il metodo di pagamento e la visualizzazione del wallet viene chiusa.
Se fai clic su una carta visualizzata, la visualizzazione del wallet viene chiusa e si apre l'attività dettagliata per quella carta.
Se
QuickAccessWalletServicefornisce più carte, l'utente può scorrere tra le carte.Il menu extra contiene due voci: una che apre l'app Wallet e una che apre la schermata Mostra carte e tessere in Impostazioni.
Test dello stato di blocco
- Se lo smartphone è bloccato, la visibilità del wallet è controllata dall'impostazione
Settings.Secure.POWER_MENU_LOCK_SHOW_CONTENT, che può essere controllata nelle Impostazioni. - Se lo smartphone è bloccato e
POWER_MENU_LOCK_SHOW_CONTENTèfalse, il wallet non viene visualizzato. - Se lo smartphone è bloccato e
POWER_MENU_LOCK_SHOW_CONTENTètrue, il wallet viene visualizzato. - Se sblocchi lo smartphone mentre il wallet è visualizzato nella schermata di blocco, le carte vengono richieste di nuovo, il che potrebbe comportare contenuti diversi per le carte.
Test di accessibilità
- Gli utenti di TalkBack possono navigare nella visualizzazione del wallet scorrendo verso sinistra e verso destra e ascoltando le descrizioni dei contenuti delle carte.
- Se scorri verso sinistra e verso destra con TalkBack attivato, ogni carta viene selezionata a turno. Gli utenti di TalkBack possono selezionare e utilizzare un metodo di pagamento NFC presso un terminale di pagamento NFC.