O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.

Carteira de acesso rápido

O recurso Carteira de acesso rápido, disponível no Android 11, permite ao usuário acessar cartões de pagamento e passes relevantes diretamente do menu de energia. Os principais casos de uso incluem selecionar o método de pagamento apropriado antes de realizar uma transação em um terminal NFC e acessar rapidamente voos e outros passes para eventos futuros.

No Android 12 ou superior, o recurso Carteira de acesso rápido está disponível na sombra, conforme mostrado na Figura 1 e na Figura 2.

Recurso de carteira de acesso rápido na sombra
Carteira recurso Figura 1. Acesso Rápido (dispositivo bloqueado).
Recurso de carteira de acesso rápido na sombra
Recurso Carteira Figura 2. Acesso Rápido (dispositivo desbloqueado).

No Android 11, o recurso está disponível no menu de energia, conforme mostrado na Figura 3.

Recurso de carteira de acesso rápido no menu de energia
Recurso Carteira Figura 3. Acesso Rápido no menu de energia.

Requisitos

Seu dispositivo deve ter NFC para usar o recurso Carteira de acesso rápido. Os vínculos de recursos para QuickAccessWalletService do padrão NFC aplicativo de pagamento, o que significa que o dispositivo também deve suportar NFC emulação de cartão baseado em host (HCE) .

Visão geral do recurso

Existem duas partes na Carteira de Acesso Rápido: a IU da Carteira de Acesso Rápido e o fornecedor do cartão da Carteira de Acesso Rápido.

Em Android 12 ou superior, as pistas de Carteira de UI em UI Sistema e está localizado em frameworks/base/packages/SystemUI/src/com/android/systemui/wallet . Em Android 11, a interface do usuário Wallet, que está localizado em platform/packages/apps/QuickAccessWallet , deve ser instalado e na lista branca.

O provedor do cartão Quick Access Wallet é o aplicativo de pagamento NFC padrão. Os usuários podem ter vários aplicativos de pagamento NFC instalado simultaneamente, mas apenas o NFC aplicativo de pagamento padrão pode mostrar cartões no menu poder. Você pode especificar quais aplicativos de pagamento NFC é definido como o padrão inicialmente, mas os usuários podem selecionar um aplicativo diferente em Configurações. Se apenas um aplicativo de pagamento NFC é instalado, ele se torna o padrão automaticamente (ver CardEmulationManager ).

Implementação

Para fornecer cartões para a interface do usuário Carteira de Acesso Rápido, aplicativos de pagamento NFC deve implementar QuickAccessWalletService . Os aplicativos de pagamento devem incluir uma entrada de manifesto anunciando o serviço.

Para garantir que apenas a interface do usuário do sistema pode ligar-se a QuickAccessWalletService , o aplicativo de pagamento NFC deve exigir a android.permission.BIND_QUICK_ACCESS_WALLET_SERVICE permissão. Exigindo Isso garante permissão que somente a interface do usuário do sistema pode se ligam 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>

Informações adicionais sobre a carteira estão incluídas no arquivo 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"/>

Em seguida, o aplicativo de pagamento deve 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
    }
}

Se HostApduService começa a lidar com uma transação de NFC e, como consequência, começa uma atividade para exibir o andamento eo resultado do pagamento, também deve tentar obter uma referência para o limite QuickAccessWalletService e chamar QuickAccessWalletService#sendEvent com um tipo de evento de TYPE_NFC_PAYMENT_STARTED . Isso faz com que a IU da carteira de acesso rápido seja descartada, permitindo ao usuário uma visão desobstruída da atividade de pagamento.

Para obter documentação adicional sobre a implementação de QuickAccessWalletService , consulte QuickAccessWalletService eo TestQuickAccessWalletService teste CTS.

Ativando a IU da Carteira de Acesso Rápido no Android 11

Para configurar a Carteira de Acesso Rápido para estar disponível a partir do menu de energia no Android 11, incluem o QuickAccessWallet alvo na construção e permitir que o globalactions.wallet do plugin adicionando a linha em negrito na amostra de código abaixo para a overlay/frameworks/base/packages/SystemUI/res/values/config.xml arquivo.

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

Especifique o aplicativo de pagamento NFC padrão no arquivo de configuração configurações usando def_nfc_payment_component .

O NFC aplicativo de pagamento padrão deve expor QuickAccessWalletService para fornecer cartões para a Carteira de Acesso Rápido. Se o aplicativo de pagamento NFC padrão não exportar este serviço, a IU da carteira ficará oculta.

Detalhes de implementação QuickAccessWalletService

QuickAccessWalletService tem três métodos abstratos que devem ser implementadas: onWalletCardsRequested , onWalletCardSelected e onWalletDismissed . O diagrama de seqüência abaixo ilustra uma seqüência de chamada quando a Carteira de Acesso Rápido é visualizada imediatamente antes de um pagamento NFC.

Diagrama de sequência da carteira de acesso rápido

Exemplo de sequência de chamada quando a carteira de acesso rápido é visualizada
Figura 4. Exemplo sequência de chamada quando Carteira de acesso rápido é visto.

Nem todas as vistas da Carteira de Acesso Rápido são seguidos por um pagamento NFC, mas a Figura 4 acima ilustra todas as capacidades de QuickAccessWalletService . Neste exemplo, o fornecedor do cartão Quick Access Wallet implementa os elementos destacados em azul. Supõe-se que os cartões de pagamento são armazenados no dispositivo em um banco de dados e são acessados através de uma interface chamada PaymentCardManager . Assume-se que uma atividade chamada PaymentActivity exibe o resultado de um pagamento de NFC. O fluxo prossegue da seguinte forma:

  1. O usuário realiza um gesto para abrir a Carteira de Acesso Rápido.
  2. A UI Carteira de Acesso Rápido (parte da interface do usuário do sistema) verifica o gerenciador de pacotes para ver se o NFC aplicativo de pagamento padrão exporta QuickAccessWalletService .

    • Se o serviço não for exportado, a Carteira de acesso rápido não será exibida.
  3. Acesso rápido liga Carteira de UI para o QuickAccessWalletService e chamadas onWalletCardsRequested . Este método pega um objeto de solicitação contendo dados sobre o número e tamanho dos cartões que podem ser fornecidos e um retorno de chamada. O retorno de chamada pode ser chamado de um thread em segundo plano.

  4. QuickAccessWalletService calcula as cartas que quer mostrar, em seguida, chama o onSuccess método no retorno de chamada fornecido. Recomenda-se que o serviço execute essas ações em um thread de segundo plano.

  5. Assim que os cartões são exibidos, a interface do usuário sistema notifica QuickAccessWalletService que o primeiro cartão foi selecionado chamando onWalletCardSelected .

    • onWalletCardSelected é chamado toda vez que o usuário seleciona um novo cartão.
    • onWalletCardSelected pode ser chamado mesmo se o cartão selecionado no momento não mudou.
  6. Quando o usuário descarta a Carteira de acesso rápido, a interface do usuário sistema notifica QuickAccessWalletService chamando onWalletDismissed .

No exemplo acima, o usuário coloca o telefone ao alcance de um terminal de pagamento NFC enquanto a carteira está sendo exibida. Um componente-chave de lidar com pagamentos NFC é HostApduService , que devem ser implementadas para APDUs processo fornecidas pelo leitor NFC (para mais informações, consulte emulação de cartão baseado em host ). Presume-se que o aplicativo de pagamento inicia uma atividade para exibir o progresso e o resultado da interação com o terminal NFC. No entanto, a IU da carteira de acesso rápido é exibida na parte superior da janela do aplicativo, o que significa que a atividade de pagamento é obscurecida pela IU da carteira de acesso rápido. Para corrigir isso, o aplicativo deve notificar a IU do sistema que a IU da carteira de acesso rápido deve ser descartada. Pode fazê-lo, obtendo uma referência ao limite QuickAccessWalletService e chamando sendWalletServiceEvent com o tipo de evento TYPE_NFC_PAYMENT_STARTED .

Implementação de amostra 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 mais detalhes sobre QuickAccessWalletService , consulte QuickAccessWalletService referência API .

Permissões

A entrada manifesto para QuickAccessWalletService deve exigir a android.permission.BIND_QUICK_ACCESS_WALLET_SERVICE permissão introduzido no Android 11. Esta é uma permissão de nível de assinatura realizada pela interface do usuário do sistema, o que significa que apenas o processo UI sistema pode ligar para implementações de QuickAccessWalletService . Esteja ciente de que os aplicativos carregados do lado pode reivindicar essa permissão e obter acesso completo a QuickAccessWalletService dados em dispositivos que executam o Android 10 ou inferior. Para evitar isso, é recomendável que o serviço de check a versão de compilação em onCreate e habilitar o serviço apenas em dispositivos que executam o Android 11 e superior. Nenhuma outra permissão de aplicativo é necessária além das necessárias para fornecer serviços de pagamento de emulação de cartão de host.

Se o NFC aplicativo de pagamento padrão não implementa ou exportação QuickAccessWalletService , a Carteira UI de acesso rápido não é exibido.

Configurações no Android 12

Para ativar ou desativar a Carteira de Acesso Rápido a partir da tela de bloqueio, os usuários podem usar o Show de alternância carteira Configurações> Tela> tela de bloqueio no. Para desativar a carteira na aba, os usuários devem editá-la manualmente na aba de configurações rápidas.

Alterne para ativar ou desativar a carteira na tela de bloqueio

Figura 5. Mostrar alternância carteira na página da tela de bloqueio nas definições.

Configurações no Android 11

Os usuários podem desligar o recurso Carteira de acesso rápido no aplicativo Configurações. A página de configurações é encontrado em Configurações> Sistema> gestos> Cartões e passes.

Página de configurações para ativar ou desativar o recurso Carteira de acesso rápido
Figura página 6. Configurações para ativar ou desativar o recurso de Carteira de Acesso Rápido.

Costumização

Adicionando a visualização da Carteira de Acesso Rápido a outro local na IU do Sistema

A UI Carteira de Acesso Rápido é construído como um plugin do sistema . Embora as marcas de implementação AOSP uso de TI em GlobalActionsDialog (mostrada na imprensa de energia de longo), você pode mover o recurso atrás de um gesto diferente, enquanto você manter o contrato especificado pela interface plugin.

public interface GlobalActionsPanelPlugin extends Plugin {

  /** Invoked when the view is shown */
  PanelViewController onPanelShown(Callbacks callbacks, boolean deviceLocked);

  /** Callbacks for interacting with the view container */
  interface Callbacks {
    /** Dismisses the view */
    void dismissGlobalActionsMenu();

    /** Starts a PendingIntent, dismissing the keyguard if necessary. */
    void startPendingIntentDismissingKeyguard(PendingIntent pendingIntent);
  }

  /** Provides the Quick Access Wallet view */
  interface PanelViewController {

    /** Returns the QuickAccessWallet view, which may take any size */
    View getPanelContent();

    /** Invoked when the view is dismissed */
    void onDismissed();

    /** Invoked when the device is either locked or unlocked. */
    void onDeviceLockStateChanged(boolean locked);
  }
}

Os Acesso Rápido Carteira UI implementos GlobalActionsPanelPlugin e PanelViewController . GlobalActionsDialog obtém uma instância do plugin carteira usando com.android.systemui.Dependency :

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

Depois de verificar que o plugin não é nulo e que o PanelViewController retornado por onPanelShown não é nulo, o diálogo atribui a View fornecida pelo getPanelContent à sua própria View e fornece retornos de chamada apropriadas para eventos do 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 remover a Carteira de Acesso Rápido a partir do menu de energia, omitir o QuickAccessWallet alvo da compilação do sistema. Para remover a Carteira de Acesso Rápido a partir do menu de energia, mas adicioná-lo para um diferente UI Sistema fornecida view, incluem a meta de construção e referências Remover para o GlobalActionsPanelPlugin de GlobalActionsImpl .

Definir configurações padrão

Android 12

No Android 12 ou superior, a Carteira de acesso rápido está sempre visível na aba de configurações rápidas. Visibilidade da Carteira de Acesso Rápido na tela de bloqueio é fechado pela configuração segura seguinte: LOCKSCREEN_SHOW_WALLET . Esta configuração controla se o ícone Carteira de acesso rápido é mostrado no canto inferior direito da tela de bloqueio. Esta configuração é definida como true por padrão, mas pode ser desligado pelo usuário em Configurações> Tela> tela de bloqueio> Mostrar carteira.

Android 11

Em Android 11, a visibilidade Carteira de Acesso Rápido é fechado por duas configurações seguras: GLOBAL_ACTIONS_PANEL_ENABLED e GLOBAL_ACTIONS_PANEL_AVAILABLE . Os AVAILABLE configuração controla se o recurso pode ser ligado e desligado em Configurações. Esta configuração é definida como true por WalletPluginService . Se QuickAccessWallet não está incluído na compilação, em seguida, a definição permanece false . O ENABLED configuração é definida como true por padrão no mesmo lugar, mas pode ser desligado pelo usuário em Configurações. Para alterar o comportamento padrão, modificar WalletPluginService#enableFeatureInSettings .

Validação

Para validar sua implementação da Carteira de Acesso Rápido, execute CTS e testes manuais. Alterações no plug-in também deve exercer os incluídos testes robolectric .

Testes CTS

Execute os testes de CTS localizados em cts/tests/quickaccesswallet .

Testes manuais para Android 12

Testando as características principais da Carteira de Acesso Rápido requer um terminal NFC pagamento (falso ou verdadeiro) e um aplicativo de pagamento NFC que implementos QuickAccessWalletService (app carteira). Os principais recursos que devem ser testados incluem: disponibilidade, estado zero, seleção de cartão e comportamento da tela de bloqueio.

Disponibilidade

  • Se o aplicativo de pagamento NFC padrão não for compatível com o recurso, a Carteira de acesso rápido não estará acessível nas configurações rápidas nem na tela de bloqueio.
  • Se o aplicativo de pagamento NFC padrão suportar o recurso, a Carteira de acesso rápido estará acessível na aba de configurações rápidas.
  • Se o NFC aplicativo de pagamento padrão suporta o recurso e se o LOCKSCREEN_SHOW_WALLET configuração é true , a Carteira de acesso rápido está acessível na tela de bloqueio.
  • Se o NFC aplicativo de pagamento padrão suporta o recurso e se o LOCKSCREEN_SHOW_WALLET configuração é false , a Carteira de Acesso Rápido não é acessível na tela de bloqueio.

Estado zero

  • Se QuickAccessWalletService está habilitado e exportados, mas não fornece qualquer cartão, o azulejo nos aparece sombra como mostrado no exemplo na Figura 7. Clicando sobre o azulejo abre a NFC aplicativo de pagamento padrão.

    Exemplo de bloco na sombra mostrando o aplicativo de pagamento NFC padrão

    Figura 7. Exemplo telha na sombra mostrando padrão NFC aplicativo de pagamento.

  • Clicar na visualização do estado vazio, conforme mostrado na Figura 8, abre o aplicativo de pagamento NFC padrão. Esta visualização de estado vazio é exibida apenas quando o usuário tem um cartão restante na carteira, remove o cartão da página de detalhes do cartão e depois volta para a visualização da carteira.

  • A tela de bloqueio mostra o ícone da carteira.

Vista de estado vazio na carteira de acesso rápido

Figura 8. exibição de estado vazio na interface do usuário Carteira de Acesso Rápido.

Estado diferente de zero

  • Se o aplicativo de carteira fornecer um ou mais cartões, o bloco na sombra aparecerá conforme mostrado na Figura 9.

    Exemplo de bloco na sombra quando o aplicativo de carteira tem um ou mais cartões

    Figura 9. Exemplo de telha na sombra quando app carteira tem um ou mais cartões.

  • Clicar no bloco mostra um carrossel de cartas.

  • A tela de bloqueio mostra um botão que abre a Carteira de Acesso Rápido.

    IU da carteira de acesso rápido com um cartão exibido

    Figura 10. Acesso Rápido UI Carteira com um cartão exibido.

  • Se o cartão exibido representar um método de pagamento NFC, segurar o telefone em um terminal de pagamento NFC resulta no uso desse método de pagamento e a visualização da carteira é descartada.

  • Clicar em um cartão exibido abre a atividade detalhada para esse cartão.

  • Se vários cartões são fornecidos pelo QuickAccessWalletService , o usuário é capaz de roubar entre cartões.

  • O menu estouro contém uma entrada: abrir as configurações de bloqueio de tela para que o usuário pode alterar a opção Mostrar carteira.

Testes de estado de bloqueio

  • Se o telefone estiver bloqueado, a carteira é visível na sombra configurações rápidas, com uma descrição de Adicionar um cartão se não existir nenhum cartão no aplicativo de pagamento padrão, ou desbloqueio para usar se existem cartões no app de pagamento padrão.
  • Se o telefone está bloqueado, a visibilidade carteira na tela de bloqueio é controlado pelo Secure.LOCKSCREEN_SHOW_WALLET configuração, que é controlada em Configurações.
  • Se o telefone estiver bloqueado, LOCKSCREEN_SHOW_WALLET é false , e não existe nenhum cartão no padrão NFC aplicativo de pagamento, a carteira não é exibido na tela de bloqueio.
  • Se o telefone estiver bloqueado, LOCKSCREEN_SHOW_WALLET é true , e não existe nenhum cartão no padrão NFC aplicativo de pagamento, a carteira não é exibido na tela de bloqueio.
  • Se o telefone estiver bloqueado, LOCKSCREEN_SHOW_WALLET é true , e existem cartões no padrão NFC aplicativo de pagamento, a carteira é exibido na tela de bloqueio.
  • Desbloquear o telefone enquanto a carteira está sendo exibida na tela de bloqueio resulta na consulta aos cartões, o que pode resultar em um conteúdo diferente do cartão.

Testes de acessibilidade

  • Os usuários do Talkback podem navegar pela visualização da carteira passando o dedo para a esquerda e para a direita e ouvindo as descrições do conteúdo dos cartões.
  • Deslizar para a esquerda e para a direita com Talkback ativado seleciona cada cartão por vez. Os usuários do Talkback podem selecionar e usar um método de pagamento NFC em um terminal de pagamento NFC.

Testes manuais para Android 11

Testando as características principais da Carteira de Acesso Rápido requer um terminal NFC pagamento (falso ou verdadeiro) e um aplicativo de pagamento NFC que implementos QuickAccessWalletService (app carteira). Os principais recursos que devem ser testados incluem disponibilidade, estado zero, seleção de cartão e comportamento da tela de bloqueio.

Disponibilidade

  • Se o GLOBAL_ACTIONS_PANEL_ENABLED cenário é true eo NFC aplicativo de pagamento padrão suporta o recurso, a Carteira de acesso rápido está acessível.
  • Se o GLOBAL_ACTIONS_PANEL_ENABLED configuração é false eo NFC aplicativo de pagamento padrão suporta o recurso, a Carteira de Acesso Rápido não está acessível.
  • Se o GLOBAL_ACTIONS_PANEL_ENABLED cenário é true eo NFC aplicativo de pagamento padrão não suporta o recurso, a Carteira de Acesso Rápido não está acessível.
  • Se o GLOBAL_ACTIONS_PANEL_ENABLED configuração é false eo NFC aplicativo de pagamento padrão não suporta o recurso, a Carteira de Acesso Rápido não está acessível.

Estado zero

  • Se QuickAccessWalletService está habilitado e exportados, mas não fornece quaisquer cartões, os Acesso Rápido Carteira de interface do usuário exibe o estado de exibição vazio.
  • Clicar na visualização do estado vazio abre o aplicativo de carteira.

    Visualização do estado vazio na IU da carteira de acesso rápido
    Figura 11. exibição de estado vazio na interface do usuário Carteira de Acesso Rápido.

Estado diferente de zero

  • Se o aplicativo de carteira fornecer um ou mais cartões, os cartões serão exibidos na IU da carteira de acesso rápido.

    IU da carteira de acesso rápido com um cartão exibido
    Figura 12. Acesso Rápido UI Carteira com um cartão exibido.
  • Se o cartão exibido representar um método de pagamento NFC, segurar o telefone em um terminal de pagamento NFC resulta no uso desse método de pagamento e a visualização da carteira é descartada.

  • Clicar em um cartão exibido descarta a visualização da carteira e abre a atividade detalhada para aquele cartão.

  • Se vários cartões são fornecidos pelo QuickAccessWalletService , o usuário é capaz de roubar entre cartões.

  • O menu estouro contém duas entradas: uma que abre o aplicativo carteira e uma que abre a mostra cartões & passa tela em Configurações.

Testes de estado de bloqueio

  • Se o telefone está bloqueado, a visibilidade carteira é controlada pelo Settings.Secure.POWER_MENU_LOCK_SHOW_CONTENT configuração, que pode ser controlado em Configurações.
  • Se o telefone está bloqueado e POWER_MENU_LOCK_SHOW_CONTENT é false , a carteira não é exibido.
  • Se o telefone está bloqueado e POWER_MENU_LOCK_SHOW_CONTENT é true , a carteira é exibido.
  • Desbloquear o telefone enquanto a carteira está sendo exibida na tela de bloqueio resulta na nova consulta dos cartões, o que pode resultar em um conteúdo diferente do cartão.

Testes de acessibilidade

  • Os usuários do TalkBack podem navegar pela visualização da carteira deslizando para a esquerda e para a direita e ouvindo as descrições do conteúdo dos cartões.
  • Deslizar para a esquerda e para a direita com TalkBack ativado seleciona cada cartão por vez. Os usuários do TalkBack podem selecionar e usar um método de pagamento NFC em um terminal de pagamento NFC.