La función Acceso rápido a Billetera, disponible en Android 11 permite que el usuario accede a tarjetas de pago y pases relevantes directamente desde el menú de encendido. Uso principal se incluyen la selección de 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 los próximos eventos.
En Android 12 o versiones posteriores, la Billetera de Acceso rápido está disponible desde el panel, como se muestra en la Figura 1 y la Figura 2.
En Android 11, la función está disponible en el menú de encendido, como se muestra en Figura 3:
Requisitos
Tu dispositivo debe tener NFC para usar la función Acceso rápido a la Billetera. La función
se vincula a QuickAccessWalletService
de la app predeterminada de pagos NFC, lo que significa
que el dispositivo también debe ser compatible con NFC
Emulación de tarjeta basada en host (HCE).
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 la Billetera.
En Android 12 o versiones posteriores, la IU de la Billetera se ejecuta en el sistema
IU y se encuentra en
frameworks/base/packages/SystemUI/src/com/android/systemui/wallet
En
Android 11, la IU de la Billetera, ubicada en
platform/packages/apps/QuickAccessWallet
:
debe estar instalado y estar incluido en la lista blanca.
El proveedor de la tarjeta de Acceso rápido a la Billetera es la app predeterminada de pagos NFC. Los usuarios pueden
tener varias apps de pago NFC instaladas simultáneamente, pero solo la predeterminada
La app de pagos NFC puede mostrar tarjetas en el menú de encendido. Puedes especificar qué tipo de NFC
app de pago está configurada como predeterminada inicialmente, pero los usuarios pueden seleccionar una
en Configuración. Si solo hay instalada una app de pagos NFC, esta se convierte en
de forma predeterminada automáticamente (consulta
CardEmulationManager
)
Implementación
Para proporcionar tarjetas a la IU de Acceso rápido a Billetera, la opción de pago con NFC
las apps deben implementar
QuickAccessWalletService
Las aplicaciones de pago deben incluir una entrada de manifiesto que anuncie el servicio.
Para garantizar que solo la IU del sistema pueda vincularse a QuickAccessWalletService
, el
La aplicación de pagos NFC debe solicitar la
android.permission.BIND_QUICK_ACCESS_WALLET_SERVICE
. Requisitos
permiso garantiza que
Solo la IU del sistema se puede vincular 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>
En el archivo en formato XML vinculado, se incluye información adicional sobre la billetera:
<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, debe
también intenta obtener una referencia al QuickAccessWalletService
vinculado y llama
QuickAccessWalletService#sendEvent
con un tipo de evento de
TYPE_NFC_PAYMENT_STARTED
Esto hace que la IU de Acceso rápido de Wallet sea
descartada para permitir que el usuario vea la actividad de pago sin obstrucciones.
Para obtener documentación adicional sobre la implementación de QuickAccessWalletService
, consulta
QuickAccessWalletService
y las
TestQuickAccessWalletService
Prueba de CTS
Habilita la IU de Acceso rápido a Billetera en Android 11
Si deseas configurar la Billetera de Acceso rápido para que esté disponible en el menú de encendido, sigue estos pasos:
en Android 11, incluye el
QuickAccessWallet
objetivo en la compilación y habilitar el complemento globalactions.wallet
agregando
la línea en negrita de la siguiente muestra de código al
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>
Especifica la app predeterminada de pagos NFC en el
archivo de configuración
usando 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, la IU de la billetera está oculta.
Detalles de la implementación de QuickAccessWalletService
QuickAccessWalletService
tiene tres métodos abstractos que se deben implementar:
onWalletCardsRequested
, onWalletCardSelected
y onWalletDismissed
. El
del diagrama de secuencia que se muestra a continuación, se ilustra una secuencia de llamadas cuando se configura
se ve inmediatamente antes de un pago NFC.
No todas las visualizaciones de Acceso rápido a Billetera van seguidas de un pago NFC, pero
En la figura 4 anterior, se ilustran todas las capacidades de
QuickAccessWalletService
En este ejemplo, la tarjeta Acceso rápido a Wallet
proveedor implementa los elementos indicados en azul. Se supone que el pago
Las tarjetas se almacenan en el dispositivo, en una base de datos, y se puede acceder a ellas a través de un
interfaz llamada PaymentCardManager
. Además, se supone que una actividad
La llamada PaymentActivity
muestra el resultado de un pago NFC. El flujo
procede de la siguiente manera:
- El usuario realiza un gesto para abrir la Billetera de Acceso rápido.
La IU de Acceso rápido a Wallet (parte de la IU del sistema) verifica el paquete. para ver si la app predeterminada de pagos NFC exporta
QuickAccessWalletService
- Si no se exporta el servicio, la Billetera de Acceso rápido no se que se muestra.
La IU de Acceso rápido de Wallet se vincula a
QuickAccessWalletService
y llama aonWalletCardsRequested
. Este método toma un objeto de solicitud que contengan 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.QuickAccessWalletService
procesa las tarjetas que quiere mostrar, Luego, llama al métodoonSuccess
en la devolución de llamada proporcionada. Es Se recomendó que el servicio realizara estas acciones en un subproceso en segundo plano.Apenas se muestran las tarjetas, la IU del sistema notifica
QuickAccessWalletService
que indica que se seleccionó la primera tarjeta mediante una llamadaonWalletCardSelected
- Se llama a
onWalletCardSelected
cada vez que el usuario selecciona una nueva tarjeta. - Se podría llamar a
onWalletCardSelected
incluso si la configuración la tarjeta seleccionada no haya cambiado.
- Se llama a
Cuando el usuario descarta la Billetera de Acceso rápido, la IU del sistema notifica
QuickAccessWalletService
llamando aonWalletDismissed
.
En el ejemplo anterior, el usuario lleva el teléfono al alcance de un pago NFC
terminal mientras se muestra la billetera. Un componente clave para manejar NFC
pagos es de HostApduService
, que debe implementarse para procesar APDU
que proporciona el lector de 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
resultado de la interacción con la terminal NFC. Sin embargo, el Acceso rápido
de Google Wallet se muestra en la parte superior de la ventana de la aplicación, lo que significa que la
la actividad de pagos está oculta debido a la IU de Acceso rápido a Billetera. Para rectificar esto, el
la app debe notificar a la IU del sistema que la IU de Acceso rápido a Wallet debe
descartada. Puede hacerlo obteniendo una referencia al límite
QuickAccessWalletService
y llamando a sendWalletServiceEvent
con el evento
escribe TYPE_NFC_PAYMENT_STARTED
.
Implementación de muestra 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 información sobre QuickAccessWalletService
, consulta
Referencia de la API de QuickAccessWalletService
.
Permisos
La entrada de manifiesto para QuickAccessWalletService
debe requerir la
Se introdujo el permiso android.permission.BIND_QUICK_ACCESS_WALLET_SERVICE
en
Android 11 Este es un permiso de nivel de firma
por la IU del sistema, lo que significa que
solo el proceso de la IU del sistema puede vincularse a implementaciones de
QuickAccessWalletService
Ten en cuenta que las apps transferidas pueden reclamar esto.
permiso y obtén acceso completo a los datos de QuickAccessWalletService
en los dispositivos
con Android 10 o una versión anterior. Para evitar esto, se recomienda que el servicio
Comprobar la versión de compilación en onCreate
y habilitar el servicio solo en dispositivos
con Android 11 y versiones posteriores. No hay otros permisos de la app
más allá de los necesarios para proporcionar el pago por emulación de tarjeta de host
de Google Cloud.
Si la app predeterminada de pagos NFC no implementa ni exporta
QuickAccessWalletService
, no se muestra la IU de Acceso rápido a Billetera.
Configuración de Android 12
Para habilitar o inhabilitar Acceso rápido a Billetera desde la pantalla de bloqueo, los usuarios pueden hacer lo siguiente: usa 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 editar manualmente en el panel de Configuración rápida.
Figura 5: Muestra el botón de activación de la billetera en la página de bloqueo de pantalla en Configuración.
Configuración de Android 11
Los usuarios pueden desactivar la función Acceso rápido a la Billetera desde la app de Configuración. El de 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 de Wallet a otra ubicación en la IU del sistema
El
IU de Acceso rápido a Wallet
se construye como
complemento del sistema.
Si bien la implementación del AOSP lo usa
GlobalActionsDialog
(se muestra cuando mantienes presionado el botón de encendido), puedes mover la función detrás de un gesto diferente
siempre y cuando 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);
}
}
El
IU de Acceso rápido a Wallet
implementa GlobalActionsPanelPlugin
y PanelViewController
.
GlobalActionsDialog
obtiene una instancia del complemento de Wallet 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 es nulo y que PanelViewController
que muestra onPanelShown
no es nulo, el diálogo adjunta el View
proporcionado
de getPanelContent
a su propio View
y proporciona devoluciones de llamada apropiadas para
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 Billetera del menú de encendido, omite el
Destino QuickAccessWallet
de la compilación del sistema Cómo quitar el Acceso rápido
Wallet desde el menú de encendido, pero agregarlo a una vista diferente de la IU del sistema.
incluir el destino de compilación y quitar las referencias a GlobalActionsPanelPlugin
de
GlobalActionsImpl
Establece la configuración predeterminada
Android 12
En Android 12 o versiones posteriores, la Billetera de Acceso rápido es
siempre visible en el panel de Configuración rápida. Visibilidad del Acceso rápido
La Billetera en la pantalla de bloqueo está protegida por la siguiente configuración de seguridad:
LOCKSCREEN_SHOW_WALLET
Este parámetro de configuración controla si el Acceso rápido
el ícono 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 desactivarla en Configuración >
Pantalla > Pantalla de bloqueo > Mostrar billetera.
Android 11
En Android 11, la visibilidad de Acceso rápido a la Billetera está controlada por dos parámetros de configuración seguros:
GLOBAL_ACTIONS_PANEL_ENABLED
y GLOBAL_ACTIONS_PANEL_AVAILABLE
. El
El parámetro de configuración AVAILABLE
controla si la función se puede activar o desactivar en
Configuración. Esta configuración se estableció en true
WalletPluginService
Si no se incluye QuickAccessWallet
en la compilación, la configuración permanece
false
La configuración ENABLED
se establece en true
de forma predeterminada en el mismo lugar.
pero el usuario puede desactivarla en Configuración. Para cambiar el comportamiento predeterminado,
modificar WalletPluginService#enableFeatureInSettings
Validación
Para validar tu implementación de la Billetera de Acceso rápido, ejecuta el CTS y la implementación y pruebas. Los cambios en el complemento también deberían evaluar el estado pruebas roboleléctricas.
Pruebas del CTS
Ejecuta las pruebas del CTS ubicadas en
cts/tests/quickaccesswallet
Pruebas manuales para Android 12
Para probar las funciones principales de Acceso rápido a la Billetera, se requiere un pago NFC
(real o falsa) y una app de pagos NFC que implemente
QuickAccessWalletService
(app de billetera) Funciones principales que se deben probar
incluyen: disponibilidad, estado cero, selección de tarjeta y comportamiento en la pantalla de bloqueo.
Disponibilidad
- Si la app predeterminada de pagos NFC no admite la función, la opción No se puede acceder a la Billetera en la configuración rápida ni en el bloqueo en la pantalla.
- Si la app predeterminada de pagos NFC admite esta función, el Acceso rápido Puedes acceder a Billetera desde el panel de configuración rápida.
- Si la app predeterminada de pagos NFC admite la función y si la
El parámetro de configuración de
LOCKSCREEN_SHOW_WALLET
estrue
, mientras que la Billetera de Acceso rápido es accesible en la pantalla de bloqueo. - Si la app predeterminada de pagos NFC admite la función y si la
El parámetro de configuración de
LOCKSCREEN_SHOW_WALLET
esfalse
, pero la Billetera de Acceso rápido no es accesible en la pantalla de bloqueo.
Sin estado
Si se habilita y exporta
QuickAccessWalletService
, pero no proporcionar ninguna tarjeta, el mosaico de la pantalla aparece como se muestra en el de la Figura 7. Si haces clic en el mosaico, se abrirá la app predeterminada de pagos NFC.Figura 7: Ejemplo de mosaico 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 abrirá el la app predeterminada de pagos NFC. Esta vista de estado vacío solo se muestra cuando al usuario le queda una tarjeta en la billetera, se quita la tarjeta de los detalles de la tarjeta y vuelve a la vista de billetera.
La pantalla de bloqueo muestra el ícono de la billetera.
Figura 8: Vista de estado vacía en la IU de Acceso rápido de Wallet.
Estado distinto de cero
Si la app de la billetera proporciona una o más tarjetas, el mosaico en el panel aparece como se muestra en la Figura 9.
Figura 9: Ejemplo de tarjeta en el panel cuando la app de Billetera tiene una o más tarjetas.
Cuando se hace 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 Billetera en la que aparece una tarjeta.
Si la tarjeta que se muestra representa una forma de pago NFC, mantén presionado el teléfono a una terminal de pago NFC genera el uso de esa forma de pago. y se descarta la vista de billetera.
Si haces clic en una tarjeta que se muestra, se abrirá la actividad detallada de esa tarjeta.
Si
QuickAccessWalletService
proporciona varias tarjetas, el usuario puede deslizarse entre tarjetas.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, podrás ver la billetera en la configuración rápida sombreado con la descripción Add a card si no existe ninguna tarjeta en la configuración predeterminada con la app de pagos predeterminada o desbloquear para usarla si hay tarjetas en la app de pagos predeterminada.
- Si el teléfono está bloqueado, la visibilidad de la Billetera en la pantalla de bloqueo se
controlado por la configuración
Secure.LOCKSCREEN_SHOW_WALLET
, que se que se controla en Configuración. - Si el teléfono está bloqueado, el valor de
LOCKSCREEN_SHOW_WALLET
esfalse
y no tiene tarjeta en la app predeterminada de pagos NFC, la billetera no se muestra en pantalla de bloqueo. - Si el teléfono está bloqueado, el valor de
LOCKSCREEN_SHOW_WALLET
estrue
y no tiene tarjeta en la app predeterminada de pagos NFC, la billetera no se muestra en pantalla de bloqueo. - Si el teléfono está bloqueado, el valor de
LOCKSCREEN_SHOW_WALLET
estrue
y las tarjetas existen en la app predeterminada de pagos NFC, la billetera se muestra en la cerradura en la pantalla. - Desbloquear el teléfono mientras se muestra la billetera en la cerradura pantalla genera la solicitud de las tarjetas, lo que puede resultar en contenido diferente de la tarjeta.
Pruebas de accesibilidad
- Los usuarios de TalkBack pueden navegar por la vista de billetera deslizando el dedo hacia la izquierda y la derecha y escucha las descripciones del contenido de las tarjetas.
- Si deslizas el dedo hacia la izquierda y la derecha con TalkBack habilitado, se seleccionará cada tarjeta de a una. Los usuarios de TalkBack pueden seleccionar y usar una forma de pago NFC en un pago NFC terminal.
Pruebas manuales para Android 11
Para probar las funciones principales de Acceso rápido a la Billetera, se requiere un pago NFC
(real o falsa) y una app de pagos NFC que implemente
QuickAccessWalletService
(app de billetera) Funciones principales que se deben probar
incluyen disponibilidad, estado cero, selección de tarjeta y comportamiento en la pantalla de bloqueo.
Disponibilidad
- Si la configuración de
GLOBAL_ACTIONS_PANEL_ENABLED
estrue
y la predeterminada La aplicación de pagos NFC es compatible con esta función, y se puede acceder a la Billetera de Acceso rápido. - Si la configuración de
GLOBAL_ACTIONS_PANEL_ENABLED
esfalse
y la predeterminada La app de pagos NFC es compatible con esta función, pero la Billetera de Acceso rápido no accesible. - Si la configuración de
GLOBAL_ACTIONS_PANEL_ENABLED
estrue
y la predeterminada La app de pagos NFC no admite la función, el Acceso rápido a Wallet no es accesible. - Si la configuración de
GLOBAL_ACTIONS_PANEL_ENABLED
esfalse
y la predeterminada La app de pagos NFC no admite la función, el Acceso rápido a Wallet no es accesible.
Sin estado
- Si se habilita y exporta
QuickAccessWalletService
, pero no proporcionar tarjetas, 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 abrirá la app de la billetera.
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.
Si la tarjeta que se muestra representa una forma de pago NFC, mantén presionado el teléfono a una terminal de pago NFC genera el uso de esa forma de pago. y se descarta la vista de billetera.
Al hacer clic en una tarjeta que se muestra, se descarta la vista de la billetera y se abre el la actividad detallada de esa tarjeta.
Si
QuickAccessWalletService
proporciona varias tarjetas, el usuario puede deslizarse entre tarjetas.El menú ampliado contiene dos entradas: una que abre la app de la billetera. y uno que abre el menú Mostrar tarjetas y pases en Configuración.
Pruebas de estado de bloqueo
- Si el teléfono está bloqueado, la visibilidad de la billetera está controlada por el
Settings.Secure.POWER_MENU_LOCK_SHOW_CONTENT
, que se puede que se controla en Configuración. - Si el teléfono está bloqueado y el valor de
POWER_MENU_LOCK_SHOW_CONTENT
esfalse
, la Wallet no se muestra. - Si el teléfono está bloqueado y el valor de
POWER_MENU_LOCK_SHOW_CONTENT
estrue
, la Wallet. - Desbloquear el teléfono mientras se muestra la billetera en la cerradura la pantalla genera que las tarjetas se vuelvan a consultar, lo que puede provocar que contenido diferente de la tarjeta.
Pruebas de accesibilidad
- Los usuarios de TalkBack pueden navegar por la vista de billetera deslizando el dedo hacia la izquierda o la derecha. y escucha las descripciones del contenido de las tarjetas.
- Si deslizas el dedo hacia la izquierda y la derecha con TalkBack habilitado, se seleccionará cada tarjeta de a una. Los usuarios de TalkBack pueden seleccionar y usar una forma de pago NFC en un pago NFC terminal.