La función Acceso rápido a Wallet, disponible a partir de Android 11, permite que el usuario acceda a tarjetas y pases relevantes directamente desde el menú de encendido. Los casos de uso principales incluyen seleccionar la forma de pago adecuada antes de realizar una transacción en una terminal NFC y acceder rápidamente a vuelos y otros pases para eventos próximos.
En Android 12 o versiones posteriores, la función Acceso rápido a Wallet está disponible desde el panel, como se muestra en las Figuras 1 y 2.
|
|
En Android 11, la función está disponible en el menú de encendido, como se muestra en la Figura 3.
Requisitos
Tu dispositivo debe tener NFC para usar la función Acceso rápido a Wallet. La función
se vincula a QuickAccessWalletService de la app predeterminada de pagos NFC, lo que significa
que el dispositivo también debe admitir la emulación de tarjetas basada en el host (HCE) de NFC
.
Descripción general de las funciones
Acceso rápido a Wallet tiene dos partes: la IU de Acceso rápido a Wallet y el proveedor de la tarjeta de Acceso rápido a Wallet.
En Android 12 o versiones posteriores, la IU de Wallet se ejecuta en la IU del sistema
y se encuentra en
frameworks/base/packages/SystemUI/src/com/android/systemui/wallet. En
Android 11, la IU de Wallet, que se encuentra en
platform/packages/apps/QuickAccessWallet,
debe estar instalada y en la lista blanca.
El proveedor de tarjetas de Acceso rápido a Wallet es la app predeterminada de pagos NFC. Los usuarios pueden tener instaladas varias apps de pagos NFC de forma simultánea, pero solo la app de pagos NFC predeterminada puede mostrar tarjetas en el menú de encendido. Puedes especificar qué app de pagos NFC se establece como predeterminada inicialmente, pero los usuarios pueden seleccionar una app diferente en Configuración. Si solo hay instalada una app de pagos NFC, se convierte en la
predeterminada automáticamente (consulta
CardEmulationManager).
Implementación
Para proporcionar tarjetas a la IU de Acceso rápido a Wallet, las apps de pagos NFC deben implementar
QuickAccessWalletService.
Las apps de pagos deben incluir una entrada de manifiesto que anuncie el servicio.
Para garantizar que solo la IU del sistema pueda vincularse a QuickAccessWalletService, la app de pagos NFC debe requerir el permiso android.permission.BIND_QUICK_ACCESS_WALLET_SERVICE. Requerir este permiso garantiza que solo la IU del sistema pueda vincularse 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>
Se incluye información adicional sobre la billetera en el archivo XML vinculado:
<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"/>
A continuación, la app de pagos debe implementar 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 comienza a controlar una transacción NFC y, como consecuencia,
inicia una actividad para mostrar el progreso y el resultado del pago, también debe
intentar obtener una referencia a QuickAccessWalletService vinculada y llamar a
QuickAccessWalletService#sendEvent con un tipo de evento de
TYPE_NFC_PAYMENT_STARTED. Esto hace que se descarte la IU de Acceso rápido a Wallet, lo que le permite al usuario tener una vista sin obstrucciones de la actividad de pago.
Para obtener documentación adicional sobre la implementación de QuickAccessWalletService, consulta
QuickAccessWalletService
y la
TestQuickAccessWalletService
prueba CTS.
Habilita la IU de Acceso rápido a Wallet en Android 11
Para configurar Acceso rápido a Wallet para que esté disponible en el menú de encendido
en Android 11, incluye el
QuickAccessWallet
objetivo en la compilación y habilita el globalactions.wallet complemento agregando
la línea en negrita en la muestra de código siguiente al
overlay/frameworks/base/packages/SystemUI/res/values/config.xml archivo.
<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>
Especifica la app predeterminada de pagos NFC en el
archivo de configuración de parámetros
con def_nfc_payment_component.
La app predeterminada de pagos NFC debe exponer
QuickAccessWalletService
para proporcionar tarjetas a Acceso rápido a Wallet. Si la app predeterminada de pagos NFC no exporta este servicio, se oculta la IU de la billetera.
Detalles de la implementación de QuickAccessWalletService
QuickAccessWalletService tiene tres métodos abstractos que se deben implementar: onWalletCardsRequested, onWalletCardSelected y onWalletDismissed. En el siguiente diagrama de secuencias, se ilustra una secuencia de llamadas cuando se ve Acceso rápido a Wallet inmediatamente antes de un pago NFC.
No todas las vistas de Acceso rápido a Wallet están seguidas por un pago NFC, pero la Figura 4 anterior ilustra todas las capacidades de QuickAccessWalletService. En este ejemplo, el proveedor de tarjetas de Acceso rápido a Wallet implementa los elementos que se describen en azul. Se supone que las tarjetas de pago se almacenan en el dispositivo en una base de datos y se accede a ellas a través de una interfaz llamada PaymentCardManager. Además, se supone que una actividad llamada PaymentActivity muestra el resultado de un pago NFC. El flujo continúa de la siguiente manera:
- El usuario realiza un gesto para abrir Acceso rápido a Wallet.
La IU de Acceso rápido a Wallet (parte de la IU del sistema) verifica el administrador de paquetes para ver si la app predeterminada de pagos NFC exporta
QuickAccessWalletService.- Si no se exporta el servicio, no se muestra Acceso rápido a Wallet.
La IU de Acceso rápido a Wallet se vincula a
QuickAccessWalletServicey llama aonWalletCardsRequested. Este método toma un objeto de solicitud que contiene datos sobre la cantidad y el tamaño de las tarjetas que se pueden proporcionar y una devolución de llamada. Se puede llamar a la devolución de llamada desde un subproceso en segundo plano.QuickAccessWalletServicecalcula las tarjetas que quiere mostrar y, luego, llama al métodoonSuccessen la devolución de llamada proporcionada. Se recomienda que el servicio realice estas acciones en un subproceso en segundo plano.En cuanto se muestran las tarjetas, la IU del sistema notifica a
QuickAccessWalletServiceque se seleccionó la primera tarjeta llamando aonWalletCardSelected.- Se llama a
onWalletCardSelectedcada vez que el usuario selecciona una tarjeta nueva. - Se puede llamar a
onWalletCardSelectedincluso si la tarjeta seleccionada actualmente no cambió.
- Se llama a
Cuando el usuario descarta Acceso rápido a Wallet, la IU del sistema notifica a
QuickAccessWalletServicellamando aonWalletDismissed.
En el ejemplo anterior, el usuario acerca el teléfono al alcance de una terminal de pago NFC mientras se muestra la billetera. Un componente clave para controlar los pagos NFC
es HostApduService, que se debe implementar para procesar las APDU
que proporciona el lector NFC (para obtener más información, consulta
Emulación de tarjetas basada en el host).
Se supone que la app de pagos inicia una actividad para mostrar el progreso y el resultado de la interacción con la terminal NFC. Sin embargo, la IU de Acceso rápido a Wallet se muestra sobre la ventana de la app, lo que significa que la actividad de pago está oculta por la IU de Acceso rápido a Wallet. Para corregir esto, la app debe notificar a la IU del sistema que se debe descartar la IU de Acceso rápido a Wallet. Para ello, puede obtener una referencia a QuickAccessWalletService vinculada y llamar a sendWalletServiceEvent con el tipo de evento TYPE_NFC_PAYMENT_STARTED.
Implementación de ejemplo 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();
});
}
}
Para obtener más detalles sobre QuickAccessWalletService, consulta
QuickAccessWalletService referencia de la API.
Permisos
La entrada de manifiesto para QuickAccessWalletService debe requerir el permiso android.permission.BIND_QUICK_ACCESS_WALLET_SERVICE que se introdujo en Android 11. Este es un permiso de nivel de firma que tiene la IU del sistema, lo que significa que solo el proceso de la IU del sistema puede vincularse a las implementaciones de QuickAccessWalletService. Ten en cuenta que las apps transferidas pueden reclamar este permiso y obtener acceso completo a los datos de QuickAccessWalletService en dispositivos que ejecutan Android 10 o versiones anteriores. Para evitar esto, se recomienda que el servicio verifique la versión de compilación en onCreate y habilite el servicio solo en dispositivos que ejecuten Android 11 y versiones posteriores. No se requieren otros permisos de la app más allá de los necesarios para proporcionar servicios de pago de emulación de tarjetas de host.
Si la app predeterminada de pagos NFC no implementa ni exporta QuickAccessWalletService, no se muestra la IU de Acceso rápido a Wallet.
Configuración en Android 12
Para habilitar o inhabilitar Acceso rápido a Wallet desde la pantalla de bloqueo, los usuarios pueden usar el botón de activación Mostrar billetera en Configuración > Pantalla > Pantalla de bloqueo. Para inhabilitar la billetera en el panel, los usuarios deben editarla de forma manual en el panel de configuración rápida.
Figura 5: Botón de activación Mostrar billetera en la página Pantalla de bloqueo en Configuración
Configuración en Android 11
Los usuarios pueden desactivar la función Acceso rápido a Wallet desde la app de Configuración. La página de configuración se encuentra en Configuración > Sistema > Gestos > Tarjetas y pases.
Personalización
Agrega la vista de Acceso rápido a Wallet a otra ubicación en la IU del sistema
La
IU de Acceso rápido a Wallet
se compila como un
complemento del sistema.
Aunque la implementación de AOSP la usa en
GlobalActionsDialog
(que se muestra cuando se presiona el botón de encendido durante un tiempo prolongado), puedes mover la función detrás de un gesto diferente
siempre que mantengas el contrato especificado por la interfaz del complemento.
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 IU de Acceso rápido a Wallet
implementa GlobalActionsPanelPlugin y PanelViewController.
GlobalActionsDialog
obtiene una instancia del complemento de la billetera con com.android.systemui.Dependency:
GlobalActionsPanelPlugin mPanelPlugin =
Dependency.get(ExtensionController.class)
.newExtension(GlobalActionsPanelPlugin.class)
.withPlugin(GlobalActionsPanelPlugin.class)
.build()
.get();
Después de verificar que el complemento no sea nulo y que el PanelViewController
que muestra onPanelShown no sea nulo, el diálogo adjunta la View proporcionada
por getPanelContent a su propia View y proporciona devoluciones de llamada adecuadas para los
eventos del 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();
Para quitar Acceso rápido a Wallet del menú de encendido, omite el objetivo QuickAccessWallet de la compilación del sistema. Para quitar Acceso rápido a
Wallet del menú de encendido, pero agregarlo a una vista diferente proporcionada por la IU del sistema,
incluye el objetivo de compilación y quita las referencias a GlobalActionsPanelPlugin
de
GlobalActionsImpl.
Establece configuraciones predeterminadas
Android 12
En Android 12 o versiones posteriores, Acceso rápido a Wallet siempre está visible en el panel de configuración rápida. La visibilidad de Acceso rápido a Wallet en la pantalla de bloqueo está controlada por el siguiente parámetro de configuración seguro: LOCKSCREEN_SHOW_WALLET. Este parámetro de configuración controla si el ícono de Acceso rápido a Wallet se muestra en la esquina inferior derecha de la pantalla de bloqueo. Este parámetro de configuración se establece en true de forma predeterminada, pero el usuario puede desactivarlo en Configuración > Pantalla > Pantalla de bloqueo > Mostrar billetera.
Android 11
En Android 11, la visibilidad de Acceso rápido a Wallet está controlada por dos parámetros de configuración seguros: GLOBAL_ACTIONS_PANEL_ENABLED y GLOBAL_ACTIONS_PANEL_AVAILABLE. El parámetro de configuración AVAILABLE controla si la función se puede activar y desactivar en Configuración. Este parámetro de configuración lo establece
WalletPluginService.true
Si QuickAccessWallet no está incluido en la compilación, el parámetro de configuración permanece en false. El parámetro de configuración ENABLED se establece en true de forma predeterminada en el mismo lugar, pero el usuario puede desactivarlo en Configuración. Para cambiar el comportamiento predeterminado, modifica WalletPluginService#enableFeatureInSettings.
Validación
Para validar tu implementación de Acceso rápido a Wallet, ejecuta pruebas CTS y manuales. Los cambios en el complemento también deben ejercer las pruebas de robolectric incluidas.
Pruebas CTS
Ejecuta las pruebas CTS ubicadas en
cts/tests/quickaccesswallet.
Pruebas manuales para Android 12
Para probar las funciones principales de Acceso rápido a Wallet, se requiere una terminal de pago NFC (real o falsa) y una app de pagos NFC que implemente QuickAccessWalletService (app de billetera). Las funciones principales que se deben probar incluyen la disponibilidad, el estado cero, la selección de tarjetas y el comportamiento de la pantalla de bloqueo.
Disponibilidad
- Si la app predeterminada de pagos NFC no admite la función, no se puede acceder a Acceso rápido a Wallet en la configuración rápida ni en la pantalla de bloqueo.
- Si la app predeterminada de pagos NFC admite la función, se puede acceder a Acceso rápido a Wallet en el panel de configuración rápida.
- Si la app predeterminada de pagos NFC admite la función y el parámetro de configuración
LOCKSCREEN_SHOW_WALLETestrue, se puede acceder a Acceso rápido a Wallet en la pantalla de bloqueo. - Si la app predeterminada de pagos NFC admite la función y el parámetro de configuración
LOCKSCREEN_SHOW_WALLETesfalse, no se puede acceder a Acceso rápido a Wallet en la pantalla de bloqueo.
Estado cero
Si
QuickAccessWalletServiceestá habilitado y exportado, pero no proporciona ninguna tarjeta, el mosaico del panel aparece como se muestra en el ejemplo de la Figura 7. Si haces clic en el mosaico, se abre la app predeterminada de pagos NFC.
Figura 7: Mosaico de ejemplo en el panel que muestra la app predeterminada de pagos NFC
Si haces clic en la vista de estado vacío, como se muestra en la Figura 8, se abre la app predeterminada de pagos NFC. Esta vista de estado vacío se muestra solo cuando el usuario tiene una tarjeta en la billetera, la quita de la página de detalles de la tarjeta y, luego, vuelve a la vista de la billetera.
La pantalla de bloqueo muestra el ícono de la billetera.
Figura 8: Vista de estado vacío en la IU de Acceso rápido a Wallet
Estado distinto de cero
Si la app de la billetera proporciona una o más tarjetas, el mosaico del panel aparece como se muestra en la Figura 9.
Figura 9: Mosaico de ejemplo en el panel cuando la app de la billetera tiene una o más tarjetas
Si haces clic en el mosaico, se muestra un carrusel de tarjetas.
La pantalla de bloqueo muestra un botón que abre Acceso rápido a Wallet.
Figura 10: IU de Acceso rápido a Wallet con una tarjeta mostrada
Si la tarjeta mostrada representa una forma de pago NFC, mantener el teléfono en una terminal de pago NFC hace que se use esa forma de pago y se descarte la vista de la billetera.
Si haces clic en una tarjeta mostrada, se abre la actividad detallada de esa tarjeta.
Si
QuickAccessWalletServiceproporciona varias tarjetas, el usuario puede deslizar el dedo entre ellas.El menú ampliado contiene una entrada: abre la configuración de la pantalla de bloqueo para que el usuario pueda cambiar la opción Mostrar billetera.
Pruebas de estado de bloqueo
- Si el teléfono está bloqueado, la billetera está visible en el panel de configuración rápida, con una descripción de Agregar una tarjeta si no existe ninguna tarjeta en la app de pagos predeterminada, o desbloquear para usar si existen tarjetas en la app de pagos predeterminada.
- Si el teléfono está bloqueado, la visibilidad de la billetera en la pantalla de bloqueo se controla con el parámetro de configuración
Secure.LOCKSCREEN_SHOW_WALLET, que se controla en Configuración. - Si el teléfono está bloqueado,
LOCKSCREEN_SHOW_WALLETesfalsey no existe ninguna tarjeta en la app predeterminada de pagos NFC, la billetera no se muestra en la pantalla de bloqueo. - Si el teléfono está bloqueado,
LOCKSCREEN_SHOW_WALLETestruey no existe ninguna tarjeta en la app predeterminada de pagos NFC, la billetera no se muestra en la pantalla de bloqueo. - Si el teléfono está bloqueado,
LOCKSCREEN_SHOW_WALLETestruey existen tarjetas en la app predeterminada de pagos NFC, la billetera se muestra en la pantalla de bloqueo. - Si desbloqueas el teléfono mientras se muestra la billetera en la pantalla de bloqueo, se vuelven a solicitar las tarjetas, lo que podría generar contenido de tarjeta diferente.
Pruebas de accesibilidad
- Los usuarios de TalkBack pueden navegar por la vista de la billetera deslizando el dedo hacia la izquierda y la derecha, y escuchando las descripciones de contenido de las tarjetas.
- Si deslizas el dedo hacia la izquierda y la derecha con TalkBack habilitado, se selecciona cada tarjeta por turno. Los usuarios de TalkBack pueden seleccionar y usar una forma de pago NFC en una terminal de pago NFC.
Pruebas manuales para Android 11
Para probar las funciones principales de Acceso rápido a Wallet, se requiere una terminal de pago NFC (real o falsa) y una app de pagos NFC que implemente QuickAccessWalletService (app de billetera). Las funciones principales que se deben probar incluyen la disponibilidad, el estado cero, la selección de tarjetas y el comportamiento de la pantalla de bloqueo.
Disponibilidad
- Si el parámetro de configuración
GLOBAL_ACTIONS_PANEL_ENABLEDestruey la app predeterminada de pagos NFC admite la función, se puede acceder a Acceso rápido a Wallet. - Si el parámetro de configuración
GLOBAL_ACTIONS_PANEL_ENABLEDesfalsey la app predeterminada de pagos NFC admite la función, no se puede acceder a Acceso rápido a Wallet. - Si el parámetro de configuración
GLOBAL_ACTIONS_PANEL_ENABLEDestruey la app predeterminada de pagos NFC no admite la función, no se puede acceder a Acceso rápido a Wallet. - Si el parámetro de configuración
GLOBAL_ACTIONS_PANEL_ENABLEDesfalsey la app predeterminada de pagos NFC no admite la función, no se puede acceder a Acceso rápido a Wallet.
Estado cero
- Si
QuickAccessWalletServiceestá habilitado y exportado, pero no proporciona ninguna tarjeta, la IU de Acceso rápido a Wallet muestra la vista de estado vacío. Si haces clic en la vista de estado vacío, se abre la app de la billetera.
Figura 11. Vista de estado vacío en la IU de Acceso rápido a Wallet
Estado distinto de cero
Si la app de la billetera proporciona una o más tarjetas, estas se muestran en la IU de Acceso rápido a Wallet.
Figura 12: IU de Acceso rápido a Wallet con una tarjeta mostrada. Si la tarjeta mostrada representa una forma de pago NFC, mantener el teléfono en una terminal de pago NFC hace que se use esa forma de pago y se descarte la vista de la billetera.
Si haces clic en una tarjeta mostrada, se descarta la vista de la billetera y se abre la actividad detallada de esa tarjeta.
Si
QuickAccessWalletServiceproporciona varias tarjetas, el usuario puede deslizar el dedo entre ellas.El menú ampliado contiene dos entradas: una que abre la app de la billetera y otra que abre la pantalla Mostrar tarjetas y pases en Configuración.
Pruebas de estado de bloqueo
- Si el teléfono está bloqueado, la visibilidad de la billetera se controla con el parámetro de configuración
Settings.Secure.POWER_MENU_LOCK_SHOW_CONTENT, que se puede controlar en Configuración. - Si el teléfono está bloqueado y
POWER_MENU_LOCK_SHOW_CONTENTesfalse, no se muestra la billetera. - Si el teléfono está bloqueado y
POWER_MENU_LOCK_SHOW_CONTENTestrue, se muestra la billetera. - Si desbloqueas el teléfono mientras se muestra la billetera en la pantalla de bloqueo, se vuelven a solicitar las tarjetas, lo que podría generar contenido de tarjeta diferente.
Pruebas de accesibilidad
- Los usuarios de TalkBack pueden navegar por la vista de la billetera deslizando el dedo hacia la izquierda y la derecha, y escuchando las descripciones de contenido de las tarjetas.
- Si deslizas el dedo hacia la izquierda y la derecha con TalkBack habilitado, se selecciona cada tarjeta por turno. Los usuarios de TalkBack pueden seleccionar y usar una forma de pago NFC en una terminal de pago NFC.