Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.

Billetera de acceso rápido

La función de billetera de acceso rápido, disponible en Android 11, permite al usuario acceder a tarjetas de pago y pases relevantes directamente desde el menú de encendido. Los principales casos de uso incluyen seleccionar el método de pago apropiado 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 superior, la función de billetera de acceso rápido está disponible en la sombra, como se muestra en la Figura 1 y la Figura 2.

Función de billetera de acceso rápido a la sombra
Característica Monedero Figura 1. acceso rápido (dispositivo bloqueado).
Función de billetera de acceso rápido a la sombra
Característica Monedero Figura 2. de acceso rápido (dispositivo desbloqueado).

En Android 11, la función está disponible en el menú de energía como se muestra en la Figura 3.

Función de billetera de acceso rápido en el menú de encendido
Monedero función Figura 3. Acceso rápido en el menú de encendido.

Requisitos

Su dispositivo debe tener NFC para usar la función de billetera de acceso rápido. Se une la característica a QuickAccessWalletService de la aplicación de pago NFC por defecto, que significa que el dispositivo también debe ser compatible con NFC emulación de tarjeta basado en host (HCE) .

Resumen de funciones

Hay dos partes en la billetera de acceso rápido: la interfaz de usuario de la billetera de acceso rápido y el proveedor de la tarjeta de billetera de acceso rápido.

En Android 12 o superior, se ejecuta la cartera de interfaz de usuario en el sistema de interfaz de usuario y se encuentra en frameworks/base/packages/SystemUI/src/com/android/systemui/wallet . En Android 11, la interfaz de usuario de la carpeta, que se encuentra en platform/packages/apps/QuickAccessWallet , deben ser instalados y la lista blanca.

El proveedor de la tarjeta Quick Access Wallet es la aplicación de pago NFC predeterminada. Los usuarios pueden tener múltiples aplicaciones de pago NFC instalados simultáneamente, pero sólo la aplicación de pago por defecto NFC pueden mostrar tarjetas en el menú de encendido. Puede especificar qué aplicación de pago NFC se establece como el valor por defecto al principio, pero los usuarios pueden seleccionar una aplicación diferente en Configuración. Si sólo hay instalada una aplicación de pago NFC, se convierte en el valor por defecto de forma automática (ver CardEmulationManager ).

Implementación

Para proporcionar tarjetas de interfaz de usuario a la cartera de acceso rápido, aplicaciones de pago NFC deben implementar QuickAccessWalletService . Las aplicaciones de pago deben incluir una entrada de manifiesto que anuncie el servicio.

Para asegurarse de que sólo la interfaz de usuario del sistema puede obligar a QuickAccessWalletService , la aplicación de pago NFC debe exigir al android.permission.BIND_QUICK_ACCESS_WALLET_SERVICE permiso. Que requiere este permiso asegura que sólo la interfaz de usuario del sistema puede unirse 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 aplicación de pago 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 manejar una transacción NFC y, como consecuencia, se inicia una actividad para mostrar el progreso y el resultado del pago, sino que también debe tratar de obtener una referencia a la cota QuickAccessWalletService y llame QuickAccessWalletService#sendEvent con un tipo de evento de TYPE_NFC_PAYMENT_STARTED . Esto hace que se cierre la interfaz de usuario de Quick Access Wallet, lo que permite al usuario una vista sin obstáculos de la actividad de pago.

Para obtener documentación adicional sobre la aplicación de QuickAccessWalletService , ver QuickAccessWalletService y la TestQuickAccessWalletService prueba de CTS.

Habilitación de la interfaz de usuario de Wallet de acceso rápido en Android 11

Para configurar el Monedero de acceso rápido a estar disponible en el menú de poder en Android 11, incluya el QuickAccessWallet objetivo en la construcción y permitir que el globalactions.wallet plug-in mediante la adición de la línea en negrita en el ejemplo de código siguiente para la 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>

Especificar la aplicación de pago NFC por defecto en el archivo de configuración de ajustes utilizando def_nfc_payment_component .

La aplicación de pago por defecto NFC debe exponer QuickAccessWalletService para proporcionar tarjetas de la cartera de acceso rápido. Si la aplicación de pago NFC predeterminada no exporta este servicio, la interfaz de usuario de la billetera está oculta.

Detalles de implementación de QuickAccessWalletService

QuickAccessWalletService tiene tres métodos abstractos que deben ser implementadas: onWalletCardsRequested , onWalletCardSelected y onWalletDismissed . El siguiente diagrama de secuencia ilustra una secuencia de llamadas cuando se visualiza la Cartera de acceso rápido inmediatamente antes de un pago NFC.

Diagrama de secuencia de la billetera de acceso rápido

Ejemplo de secuencia de llamada cuando se visualiza la billetera de acceso rápido
Figura 4. Ejemplo secuencia de llamada cuando es visto de acceso rápido Wallet.

No todos los puntos de vista de la Monedero de acceso rápido son seguidos por un pago NFC, pero la figura 4 anterior ilustra todas las capacidades de QuickAccessWalletService . En este ejemplo, el proveedor de la tarjeta Quick Access Wallet implementa los elementos descritos en azul. Se supone que las tarjetas de pago se almacenan en el dispositivo en una base de datos y se accede a través de una interfaz llamada PaymentCardManager . Se supone además que una actividad llamada PaymentActivity muestra el resultado de un pago NFC. El flujo procede de la siguiente manera:

  1. El usuario realiza un gesto para abrir la billetera de acceso rápido.
  2. La interfaz de usuario Monedero de acceso rápido (parte del sistema de interfaz de usuario) comprueba el gestor de paquetes para ver si la aplicación de pago por defecto NFC exporta QuickAccessWalletService .

    • Si el servicio no se exporta, no se muestra la billetera de acceso rápido.
  3. Los de acceso rápido se une Monedero de interfaz de usuario a la QuickAccessWalletService y llamadas onWalletCardsRequested . Este método toma un objeto de solicitud que contiene datos sobre el número y el tamaño de las tarjetas que se pueden proporcionar y una devolución de llamada. La devolución de llamada se puede llamar desde un hilo en segundo plano.

  4. QuickAccessWalletService calcula las tarjetas que se quiere mostrar, a continuación, llama a la onSuccess método en la devolución de llamada indicada. Se recomienda que el servicio realice estas acciones en un hilo en segundo plano.

  5. Tan pronto como se muestran las cartas, la interfaz de usuario de sistema notifica QuickAccessWalletService que la primera tarjeta ha sido seleccionado llamando onWalletCardSelected .

    • onWalletCardSelected se llama cada vez que el usuario selecciona una nueva tarjeta.
    • onWalletCardSelected podría llamarse incluso si la tarjeta seleccionada en ese momento no ha cambiado.
  6. Cuando el usuario cierra el Monedero de acceso rápido, la interfaz de usuario de sistema notifica QuickAccessWalletService llamando onWalletDismissed .

En el ejemplo anterior, el usuario pone el teléfono al alcance de un terminal de pago NFC mientras se muestra la billetera. Un componente clave de manejo de pagos NFC es HostApduService , que debe ser implementado para APDU procedimiento proporcionado por el lector NFC (para más información, véase la emulación de tarjeta basado en host ). Se supone que la aplicación de pago inicia una actividad para mostrar el progreso y el resultado de la interacción con el terminal NFC. Sin embargo, la interfaz de usuario de Quick Access Wallet se muestra en la parte superior de la ventana de la aplicación, lo que significa que la actividad de pago se ve oscurecida por la interfaz de usuario de Quick Access Wallet. Para rectificar esto, la aplicación debe notificar a la interfaz de usuario del sistema que se debe cerrar la interfaz de usuario de la billetera de acceso rápido. Puede hacerlo por conseguir una referencia a la cota QuickAccessWalletService y llamando sendWalletServiceEvent con el tipo de evento 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 más detalles sobre QuickAccessWalletService , ver QuickAccessWalletService referencia de la API .

Permisos

La entrada de manifiesto para QuickAccessWalletService debe requerir la android.permission.BIND_QUICK_ACCESS_WALLET_SERVICE permiso introducido en Android 11. Se trata de un permiso de nivel de firma en poder de la interfaz de usuario del sistema, lo que significa que sólo el proceso de sistema de interfaz de usuario se puede unir a las implementaciones de QuickAccessWalletService . Tenga en cuenta que las aplicaciones de carga laterales pueden reclamar este permiso y obtener acceso completo a QuickAccessWalletService de datos en dispositivos con Android 10 o inferior. Para evitar esto, se recomienda que el servicio comprueba la versión de compilación en onCreate y activar el servicio sólo en dispositivos con Android 11 y superior. No se requieren otros permisos de aplicación más allá de los necesarios para proporcionar servicios de pago de emulación de tarjeta de host.

Si la aplicación de pago por defecto NFC no implementa o exportación QuickAccessWalletService , no se muestra la interfaz de usuario Monedero de acceso rápido.

Configuración en Android 12

Para activar o desactivar la cartera de acceso rápido desde la pantalla de bloqueo, los usuarios pueden utilizar el Salón de palanca cartera en Configuración> Pantalla> Pantalla de bloqueo. Para deshabilitar la billetera en la sombra, los usuarios deben editarla manualmente en la sombra de configuración rápida.

Alternar para habilitar o deshabilitar la billetera desde la pantalla de bloqueo

Figura 5. Mostrar palanca cartera en la página de la pantalla de bloqueo en la configuración.

Configuración en Android 11

Los usuarios pueden desactivar la función Cartera de acceso rápido desde la aplicación Configuración. La página de configuración se encuentra en Configuración> Sistema> Gestures> Juegos de cartas y pases.

Página de configuración para habilitar o deshabilitar la función de billetera de acceso rápido
Figura 6. Configuración de la página para activar o desactivar la función de acceso rápido Monedero.

Personalización

Agregar la vista de billetera de acceso rápido a otra ubicación en la interfaz de usuario del sistema

La interfaz de usuario Monedero de acceso rápido se construye como un plug-in del sistema . Aunque las marcas de implementación AOSP uso de ella en GlobalActionsDialog (que se muestra en la prensa de energía de largo), puede mover la característica detrás de un gesto diferente, siempre y cuando mantenga el contrato especificado por la interfaz de complementos.

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

Los Monedero de interfaz de usuario de acceso rápido implementos GlobalActionsPanelPlugin y PanelViewController . GlobalActionsDialog obtiene una instancia del complemento de la cartera mediante el uso de com.android.systemui.Dependency :

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

Después de comprobar que el plugin no es nulo y que el PanelViewController devuelto por onPanelShown no es nulo, el diálogo se une la View proporcionada por getPanelContent a su propia View y proporciona servicios repetidos apropiadas 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 la cartera de acceso rápido en el menú de potencia, omitir el QuickAccessWallet objetivo de la construcción del sistema. Para quitar la cartera de acceso rápido en el menú, pero el poder añadirlo a un sistema de interfaz de usuario diferente, siempre vista, incluya el tipo de generación y referencias sacar al GlobalActionsPanelPlugin de GlobalActionsImpl .

Establecer configuraciones predeterminadas

Android 12

En Android 12 o superior, la billetera de acceso rápido siempre está visible en la pantalla de configuración rápida. Visibilidad de la cartera de acceso rápido en la pantalla de bloqueo está cerrado por el ajuste seguro siguiente: LOCKSCREEN_SHOW_WALLET . Esta configuración controla si el icono de la Cartera de acceso rápido se muestra en la parte inferior derecha de la pantalla de bloqueo. Esta configuración se establece en true por defecto, pero se puede desactivar por el usuario en Configuración> Pantalla> Pantalla de bloqueo> Mostrar la cartera.

Android 11

En Android 11, la visibilidad de la carpeta de acceso rápido es cerrada por dos configuraciones seguras: GLOBAL_ACTIONS_PANEL_ENABLED y GLOBAL_ACTIONS_PANEL_AVAILABLE . Los AVAILABLE configuración controla si la función se puede activar y desactivar en Ajustes. Esta opción se configura como true por WalletPluginService . Si QuickAccessWallet no está incluido en la compilación, a continuación, el valor permanece false . El ENABLED valor se establece en true por defecto en el mismo lugar, pero puede ser desactivado por el usuario en Configuración. Para cambiar el comportamiento predeterminado, modificar WalletPluginService#enableFeatureInSettings .

Validación

Para validar su implementación de Quick Access Wallet, ejecute CTS y pruebas manuales. Los cambios en el plugin también deben ejercer las incluidas pruebas robolectric .

Pruebas CTS

Ejecutar las pruebas CTS situados en cts/tests/quickaccesswallet .

Pruebas manuales para Android 12

Prueba de las características principales de la cartera de acceso rápido requiere un terminal de pago NFC (falsa o verdadera) y una aplicación de pago NFC que implementa QuickAccessWalletService (aplicación Wallet). Las características principales que deben probarse incluyen: disponibilidad, estado cero, selección de tarjeta y comportamiento de la pantalla de bloqueo.

Disponibilidad

  • Si la aplicación de pago NFC predeterminada no es compatible con la función, no se puede acceder a Quick Access Wallet ni en la configuración rápida ni en la pantalla de bloqueo.
  • Si la aplicación de pago NFC predeterminada admite la función, se puede acceder a la billetera de acceso rápido en la pantalla de configuración rápida.
  • Si la aplicación de pago por defecto NFC compatible con la función y si el LOCKSCREEN_SHOW_WALLET ajuste es true , la cartera de acceso rápido se puede acceder a la pantalla de bloqueo.
  • Si la aplicación de pago por defecto NFC compatible con la función y si el LOCKSCREEN_SHOW_WALLET ajuste es false , la cartera de acceso rápido no se puede acceder a la pantalla de bloqueo.

Estado cero

  • Si QuickAccessWalletService está activado y se exporta, pero no proporciona ninguna tarjeta, los azulejos de la sombra aparece como se muestra en el ejemplo de la Figura 7. Al hacer clic en el azulejo se abre la aplicación de pago por defecto NFC.

    Mosaico de ejemplo en la sombra que muestra la aplicación de pago NFC predeterminada

    Figura 7. Ejemplo de baldosas en la sombra que muestra la aplicación de pago predeterminado NFC.

  • Al hacer clic en la vista de estado vacía como se muestra en la Figura 8, se abre la aplicación de pago NFC predeterminada. Esta vista de estado vacía se muestra solo cuando al usuario le queda una tarjeta en la billetera, la quita de la página de detalles de la tarjeta y luego vuelve a la vista de billetera.

  • La pantalla de bloqueo muestra el ícono de billetera.

Vista de estado vacía en la billetera de acceso rápido

Figura 8. Vista estado vacío en la interfaz de usuario de la carpeta de acceso rápido.

Estado distinto de cero

  • Si la aplicación de billetera proporciona una o más tarjetas, el mosaico en la sombra aparece como se muestra en la Figura 9.

    Mosaico de ejemplo en la sombra cuando la aplicación de billetera tiene una o más tarjetas

    Figura 9. Ejemplo de baldosas en la sombra cuando la aplicación Wallet tiene una o más tarjetas.

  • Al hacer clic en el mosaico se muestra un carrusel de tarjetas.

  • La pantalla de bloqueo muestra un botón que abre la billetera de acceso rápido.

    Interfaz de usuario de Wallet de acceso rápido con una tarjeta mostrada

    Figura 10. Acceso rápido interfaz de usuario Monedero con una tarjeta de muestra.

  • Si la tarjeta mostrada representa un método de pago NFC, sostener el teléfono en un terminal de pago NFC da como resultado que se utilice ese método de pago y se descarte la vista de billetera.

  • Al hacer clic en una tarjeta mostrada, se abre la actividad detallada de esa tarjeta.

  • Si hay varias tarjetas son proporcionados por QuickAccessWalletService , el usuario es capaz de deslizar entre las tarjetas.

  • El menú contiene una entrada de desbordamiento: abrir la configuración de la pantalla de bloqueo de manera que el usuario puede cambiar la opción Mostrar cartera.

Pruebas de estado de bloqueo

  • Si el teléfono está bloqueado, la cartera es visible en la sombra ajustes rápidos, con una descripción de Añadir una tarjeta si existe ninguna tarjeta en la aplicación de pago por defecto, o de desbloqueo de usar si existen tarjetas en la aplicación de pago predeterminado.
  • Si el teléfono está bloqueado, la visibilidad cartera en la pantalla de bloqueo es controlado por el Secure.LOCKSCREEN_SHOW_WALLET ajuste, que es controlada en Configuración.
  • Si el teléfono está bloqueado, LOCKSCREEN_SHOW_WALLET es false , y no existe ninguna tarjeta en la aplicación de pago por defecto NFC, la cartera no se visualiza en la pantalla de bloqueo.
  • Si el teléfono está bloqueado, LOCKSCREEN_SHOW_WALLET es true , y no existe ninguna tarjeta en la aplicación de pago por defecto NFC, la cartera no se visualiza en la pantalla de bloqueo.
  • Si el teléfono está bloqueado, LOCKSCREEN_SHOW_WALLET es true , y existen cartas en la aplicación de pago por defecto NFC, la cartera se visualiza en la pantalla de bloqueo.
  • Al desbloquear el teléfono mientras se muestra la billetera en la pantalla de bloqueo, las tarjetas se vuelven a solicitar, lo que puede dar como resultado un contenido de tarjeta diferente.

Pruebas de accesibilidad

  • Los usuarios de Talkback pueden navegar por la vista de billetera deslizando el dedo hacia la izquierda y hacia la derecha y escuchando las descripciones del contenido de las tarjetas.
  • Deslizar el dedo hacia la izquierda y hacia la derecha con Talkback habilitado selecciona cada tarjeta a su vez. Los usuarios de Talkback pueden seleccionar y utilizar un método de pago NFC en una terminal de pago NFC.

Pruebas manuales para Android 11

Prueba de las características principales de la cartera de acceso rápido requiere un terminal de pago NFC (falsa o verdadera) y una aplicación de pago NFC que implementa QuickAccessWalletService (aplicación Wallet). Las características principales que deben probarse incluyen disponibilidad, estado cero, selección de tarjetas y comportamiento de la pantalla de bloqueo.

Disponibilidad

  • Si el GLOBAL_ACTIONS_PANEL_ENABLED ajuste es true y la aplicación de pago por defecto NFC compatible con la función, la cartera de acceso rápido es accesible.
  • Si el GLOBAL_ACTIONS_PANEL_ENABLED ajuste es false y la aplicación de pago por defecto NFC compatible con la función, la cartera de acceso rápido no es accesible.
  • Si el GLOBAL_ACTIONS_PANEL_ENABLED ajuste es true y la aplicación de pago por defecto NFC no es compatible con la función, la cartera de acceso rápido no es accesible.
  • Si el GLOBAL_ACTIONS_PANEL_ENABLED ajuste es false y la aplicación de pago por defecto NFC no es compatible con la función, la cartera de acceso rápido no es accesible.

Estado cero

  • Si QuickAccessWalletService está activado y se exporta, pero no proporciona ninguna tarjeta, la cartera muestra la interfaz de usuario de acceso rápido al estado de vista vacía.
  • Al hacer clic en la vista de estado vacía, se abre la aplicación de billetera.

    Vista de estado vacía en la interfaz de usuario de Wallet de acceso rápido
    Figura 11. Vista estado vacío en la interfaz de usuario de la carpeta de acceso rápido.

Estado distinto de cero

  • Si la aplicación de billetera proporciona una o más tarjetas, las tarjetas se muestran en la interfaz de usuario de billetera de acceso rápido.

    Interfaz de usuario de Wallet de acceso rápido con una tarjeta mostrada
    Figura 12. Acceso rápido UI Monedero con una tarjeta de muestra.
  • Si la tarjeta mostrada representa un método de pago NFC, sostener el teléfono en un terminal de pago NFC da como resultado que se utilice ese método de pago y se descarte la vista de billetera.

  • Al hacer clic en una tarjeta mostrada, se descarta la vista de billetera y se abre la actividad detallada para esa tarjeta.

  • Si hay varias tarjetas son proporcionados por QuickAccessWalletService , el usuario es capaz de deslizar entre las tarjetas.

  • El menú de desbordamiento contiene dos entradas: una que abre la aplicación Wallet y uno que abre las cartillas de imágenes y pasa a la pantalla de Configuración.

Pruebas de estado de bloqueo

  • Si el teléfono está bloqueado, la visibilidad cartera está controlada por el Settings.Secure.POWER_MENU_LOCK_SHOW_CONTENT ajuste, que puede ser controlado en la configuración.
  • Si el teléfono se bloquea y POWER_MENU_LOCK_SHOW_CONTENT es false , no se muestra la cartera.
  • Si el teléfono se bloquea y POWER_MENU_LOCK_SHOW_CONTENT es true , se muestra la cartera.
  • Al desbloquear el teléfono mientras se muestra la billetera en la pantalla de bloqueo, las tarjetas se vuelven a consultar, lo que puede dar como resultado un contenido de tarjeta diferente.

Pruebas de accesibilidad

  • Los usuarios de TalkBack pueden navegar por la vista de billetera deslizando el dedo hacia la izquierda y hacia la derecha y escuchando las descripciones del contenido de las tarjetas.
  • Deslizar hacia la izquierda y hacia la derecha con TalkBack habilitado selecciona cada tarjeta por turno. Los usuarios de TalkBack pueden seleccionar y utilizar un método de pago NFC en una terminal de pago NFC.