O recurso de acesso rápido à carteira, disponível no Android 11, permite que o usuário acesse cartões de pagamento e cartões relevantes diretamente no menu liga/desliga. Os principais casos de uso incluem selecionar a forma de pagamento adequada antes de realizar uma transação em um terminal NFC e acessar rapidamente voos e outros cartões para eventos futuros.
No Android 12 e versões mais recentes, o recurso Acesso rápido à carteira está disponível na aba, como mostrado nas Figuras 1 e 2.
![]() |
![]() |
No Android 11, o recurso está disponível no menu de desligamento, conforme mostrado na Figura 3.
![Recurso de acesso rápido à carteira no menu de desligamento](https://source.android.google.cn/static/docs/core/connect/images/quick-access-wallet.png?authuser=002&hl=pt-br)
Requisitos
O dispositivo precisa ter NFC para usar o recurso de acesso rápido à Carteira. O recurso
é vinculado ao QuickAccessWalletService
do app padrão de pagamento por aproximação, o que significa
que o dispositivo também precisa ser compatível com a
emulação de cartão com base em host (HCE, na sigla em inglês)
da NFC.
Visão geral do recurso
A Carteira de acesso rápido tem duas partes: a interface e o provedor de cartão.
No Android 12 ou versões mais recentes, a interface da Carteira é executada na interface
do sistema e está localizada em
frameworks/base/packages/SystemUI/src/com/android/systemui/wallet
. No
Android 11, a interface da Carteira, localizada em
platform/packages/apps/QuickAccessWallet
,
precisa ser instalada e incluída na lista de permissões.
O provedor de cartão do Acesso rápido à carteira é o app de pagamento por aproximação padrão. Os usuários podem
ter vários apps de pagamento por aproximação instalados simultaneamente, mas apenas o app de pagamento por aproximação
padrão pode mostrar cartões no menu Liga/Desliga. É possível especificar qual app de pagamento
NFC é definido como padrão inicialmente, mas os usuários podem selecionar um
app diferente nas configurações. Se apenas um app de pagamento por aproximação estiver instalado, ele vai se tornar o padrão automaticamente. Consulte CardEmulationManager
.
Implementação
Para fornecer cartões à interface da Carteira de acesso rápido, os apps de pagamento
NFC precisam implementar
QuickAccessWalletService
.
Os apps de pagamento precisam incluir uma entrada de manifesto que anuncie o serviço.
Para garantir que apenas a IU do sistema possa se vincular a QuickAccessWalletService
, o
app de pagamento por NFC precisa exigir a
permissão android.permission.BIND_QUICK_ACCESS_WALLET_SERVICE
. Exigir essa
permissão garante que
somente a interface do sistema possa se 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>
Outras informações sobre a carteira sã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 app de pagamento precisa 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çar a processar uma transação NFC e, como consequência,
iniciar uma atividade para mostrar o progresso e o resultado do pagamento, ele também
tentará buscar uma referência ao QuickAccessWalletService
vinculado e chamar
QuickAccessWalletService#sendEvent
com um tipo de evento de
TYPE_NFC_PAYMENT_STARTED
. Isso faz com que a interface da Carteira de acesso rápido seja
encerrada, permitindo que o usuário tenha uma visualização desobstruída da atividade de pagamento.
Para ver mais documentação sobre como implementar QuickAccessWalletService
, consulte
QuickAccessWalletService
e o
teste CTS
TestQuickAccessWalletService
.
Ativar a interface da Carteira de acesso rápido no Android 11
Para configurar a disponibilidade da Carteira de acesso rápido no menu liga/desliga
no Android 11, inclua o destino
QuickAccessWallet
no build e ative o plug-in globalactions.wallet
adicionando
a linha em negrito no exemplo de código abaixo ao
arquivo 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>
Especifique o app de pagamento por NFC padrão no
arquivo de configuração de configurações
usando def_nfc_payment_component
.
O app de pagamento por NFC padrão precisa expor
QuickAccessWalletService
para fornecer cartões à Carteira de acesso rápido. Se o app de pagamento por aproximação padrão
não exportar esse serviço, a interface da carteira será oculta.
Detalhes de implementação do QuickAccessWalletService
QuickAccessWalletService
tem três métodos abstratos que precisam ser implementados:
onWalletCardsRequested
, onWalletCardSelected
e onWalletDismissed
. O
diagrama de sequência abaixo ilustra uma sequência de chamadas quando a carteira de acesso rápido
é exibida imediatamente antes de um pagamento por NFC.
![Exemplo de sequência de chamadas quando o Acesso rápido à carteira é aberto](https://source.android.google.cn/static/docs/core/connect/images/wallet-sequence-diagram.png?authuser=002&hl=pt-br)
Nem todas as visualizações da Carteira de acesso rápido são seguidas por um pagamento por NFC, mas
a Figura 4 acima ilustra todos os recursos da
QuickAccessWalletService
. Neste exemplo, o provedor do cartão de acesso rápido à carteira
implementa os elementos descritos em azul. Supõe-se que os cartões de pagamento
são armazenados no dispositivo em um banco de dados e acessados por uma
interface chamada PaymentCardManager
. Além disso, presume-se que uma atividade
chamada PaymentActivity
mostre o resultado de um pagamento por NFC. O fluxo
ocorre da seguinte maneira:
- O usuário realiza um gesto para abrir a Carteira de acesso rápido.
A interface do Quick Access Wallet (parte da interface do sistema) verifica o gerenciador de pacotes para saber se o app de pagamento por NFC padrão exporta
QuickAccessWalletService
.- Se o serviço não for exportado, a Carteira de Acesso Rápido não será exibida.
A interface da Carteira de Acesso rápido é vinculada a
QuickAccessWalletService
e chamaonWalletCardsRequested
. Esse método usa um objeto de solicitação com dados sobre o número e o tamanho dos cartões que podem ser fornecidos e um callback. O callback pode ser chamado em uma linha de execução em segundo plano.QuickAccessWalletService
calcula os cards que quer mostrar e chama o métodoonSuccess
no callback fornecido. É recomendado que o serviço realize essas ações em uma linha de execução em segundo plano.Assim que os cartões são exibidos, a interface do sistema notifica
QuickAccessWalletService
de que o primeiro cartão foi selecionado chamandoonWalletCardSelected
.onWalletCardSelected
é chamado sempre que o usuário seleciona um novo card.onWalletCardSelected
pode ser chamado mesmo que o cartão selecionado não tenha mudado.
Quando o usuário dispensa a Carteira de acesso rápido, a IU do sistema notifica
QuickAccessWalletService
chamandoonWalletDismissed
.
No exemplo acima, o usuário aproxima o smartphone de um terminal de pagamento NFC enquanto a carteira está sendo mostrada. Um componente importante do processamento de pagamentos
NFC é o HostApduService
, que precisa ser implementado para processar APDUs
fornecidas pelo leitor de NFC. Para mais informações, consulte
Emulação de cartão com base no host.
Supõe-se que o app de pagamento inicia uma atividade para mostrar o progresso e
o resultado da interação com o terminal NFC. No entanto, a interface da Carteira de acesso rápido
é mostrada na parte de cima da janela do app, o que significa que a
atividade de pagamento é ocultada pela interface da Carteira de acesso rápido. Para corrigir isso, o
app precisa notificar a IU do sistema que a IU da Carteira de acesso rápido precisa ser
encerrada. Para isso, ele precisa ter uma referência ao
QuickAccessWalletService
vinculado e chamar sendWalletServiceEvent
com o tipo de evento
TYPE_NFC_PAYMENT_STARTED
.
Exemplo de implementação do 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 a
referência da API QuickAccessWalletService
.
Permissões
A entrada do manifesto para QuickAccessWalletService
precisa exigir a
permissão android.permission.BIND_QUICK_ACCESS_WALLET_SERVICE
introduzida no
Android 11. Essa é uma permissão no nível da assinatura mantida
pela interface do sistema, o que significa que
somente o processo da interface do sistema pode ser vinculado a implementações de
QuickAccessWalletService
. Os apps sideloaded podem reivindicar essa
permissão e ter acesso total aos dados de QuickAccessWalletService
em dispositivos
com o Android 10 ou versões anteriores. Para evitar isso, é recomendável que o serviço
verifique a versão do build em onCreate
e ative o serviço apenas em dispositivos
com o Android 11 ou mais recente. Nenhuma outra permissão do app
é necessária além daquelas necessárias para fornecer serviços de pagamento de
emulação de cartão host.
Se o app de pagamento NFC padrão não implementar ou exportar
QuickAccessWalletService
, a interface da Carteira de acesso rápido não será exibida.
Configurações no Android 12
Para ativar ou desativar a Carteira de acesso rápido na tela de bloqueio, os usuários podem usar o botão Mostrar carteira em Configurações > Tela > Tela de bloqueio. Para desativar a carteira na aba, os usuários precisam editá-la manualmente na aba de configurações rápidas.
Figura 5. Mostrar a chave "Mostrar a Carteira" na página "Tela de bloqueio" em "Configurações".
Configurações no Android 11
Os usuários podem desativar o recurso da Carteira de acesso rápido no app Configurações. A página de configurações está em Configurações > Sistema > Gestos > Cartões e cartões de acesso.
![Página de configurações para ativar ou desativar o recurso Acesso rápido à carteira](https://source.android.google.cn/static/docs/core/connect/images/cards-passes.png?authuser=002&hl=pt-br)
Personalização
Adicionar a visualização do Acesso rápido à carteira a outro local na interface do sistema
A
interface da Carteira de acesso rápido
é criada como um
plug-in do sistema.
Embora a implementação do AOSP use o recurso em
GlobalActionsDialog
(exibido ao pressionar o botão de energia por muito tempo), é possível mover o recurso para trás de um gesto diferente
desde que você mantenha o contrato especificado pela interface do plug-in.
public interface GlobalActionsPanelPlugin extends Plugin {
/** Invoked when the view is shown */
PanelViewController onPanelShown(Callbacks callbacks, boolean deviceLocked);
/** Callbacks for interacting with the view container */
interface Callbacks {
/** Dismisses the view */
void dismissGlobalActionsMenu();
/** Starts a PendingIntent, dismissing the keyguard if necessary. */
void startPendingIntentDismissingKeyguard(PendingIntent pendingIntent);
}
/** Provides the Quick Access Wallet view */
interface PanelViewController {
/** Returns the QuickAccessWallet view, which may take any size */
View getPanelContent();
/** Invoked when the view is dismissed */
void onDismissed();
/** Invoked when the device is either locked or unlocked. */
void onDeviceLockStateChanged(boolean locked);
}
}
A
interface da Carteira de acesso rápido
implementa GlobalActionsPanelPlugin
e PanelViewController
.
GlobalActionsDialog
recebe uma instância do plug-in da carteira usando
com.android.systemui.Dependency
:
GlobalActionsPanelPlugin mPanelPlugin =
Dependency.get(ExtensionController.class)
.newExtension(GlobalActionsPanelPlugin.class)
.withPlugin(GlobalActionsPanelPlugin.class)
.build()
.get();
Depois de verificar se o plug-in não é nulo e se o PanelViewController
retornado por onPanelShown
não é nulo, a caixa de diálogo anexa o View
fornecido
por getPanelContent
ao próprio View
e fornece callbacks adequados 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 o Acesso rápido à carteira do menu Liga/Desliga, omita o
destino QuickAccessWallet
do build do sistema. Para remover a carteira
de acesso rápido do menu de desligamento, mas adicioná-la a uma visualização diferente fornecida pela interface do sistema,
inclua o destino de build e remova as referências ao GlobalActionsPanelPlugin
do
GlobalActionsImpl
.
Definir configurações padrão
Android 12
No Android 12 e versões mais recentes, o Acesso rápido à carteira está
sempre visível na aba de configurações rápidas. A visibilidade da Carteira
de Acesso rápido na tela de bloqueio é bloqueada pela seguinte configuração segura:
LOCKSCREEN_SHOW_WALLET
. Essa configuração controla se o ícone de acesso rápido à carteira
é mostrado no canto inferior direito da tela de bloqueio. Essa configuração é definida como true
por padrão, mas pode ser desativada pelo usuário em Configurações > Tela > Tela de bloqueio > Mostrar carteira.
Android 11
No Android 11, a visibilidade da Carteira no Acesso rápido é controlada por duas configurações seguras:
GLOBAL_ACTIONS_PANEL_ENABLED
e GLOBAL_ACTIONS_PANEL_AVAILABLE
. A
configuração AVAILABLE
controla se o recurso pode ser ativado e desativado nas
Configurações. Essa configuração é definida como true
por
WalletPluginService
.
Se QuickAccessWallet
não estiver incluído no build, a configuração permanecerá
false
. A configuração ENABLED
é definida como true
por padrão no mesmo lugar,
mas pode ser desativada pelo usuário nas configurações. Para mudar o comportamento padrão,
modifique WalletPluginService#enableFeatureInSettings
.
Validação
Para validar sua implementação da Carteira de acesso rápido, execute testes CTS e manuais. As mudanças no plug-in também precisam executar os testes roboelétricos incluídos.
Testes CTS
Execute os testes CTS localizados em
cts/tests/quickaccesswallet
.
Testes manuais do Android 12
Para testar os principais recursos da Carteira de acesso rápido, é necessário ter um terminal de pagamento
NFC (real ou falso) e um app de pagamento NFC que implemente
QuickAccessWalletService
(app de carteira). Os recursos principais que precisam ser testados
incluem: disponibilidade, estado zero, seleção de cartão e comportamento da tela de bloqueio.
Disponibilidade
- Se o app de pagamento NFC padrão não for compatível com o recurso, a Carteira de Acesso Rápido não poderá ser acessada nas Configurações rápidas nem na tela de bloqueio.
- Se o app de pagamento por NFC padrão oferecer suporte ao recurso, a Carteira de acesso rápido poderá ser acessada na sombra de configurações rápidas.
- Se o app de pagamento por NFC padrão oferecer suporte ao recurso e a
configuração
LOCKSCREEN_SHOW_WALLET
fortrue
, a Carteira de acesso rápido vai estar disponível na tela de bloqueio. - Se o app de pagamento por aproximação padrão oferecer suporte ao recurso e a
configuração
LOCKSCREEN_SHOW_WALLET
forfalse
, a carteira de acesso rápido não poderá ser acessada na tela de bloqueio.
Estado zero
Se
QuickAccessWalletService
estiver ativado e exportado, mas não fornecer nenhum cartão, o bloco na sombra aparecerá como mostrado no exemplo na Figura 7. Clicar no bloco abre o app padrão de pagamento por aproximação.Figura 7. Exemplo de bloco na sombra mostrando o app de pagamento por aproximação padrão.
Clicar na visualização de estado vazio, conforme mostrado na Figura 8, abre o app de pagamento NFC padrão. Essa visualização de estado vazio aparece apenas quando o usuário tem um cartão na carteira, remove o cartão da página de detalhes e volta à visualização da carteira.
A tela de bloqueio mostra o ícone de carteira.
Figura 8. Visualização do estado vazio na interface da Carteira de acesso rápido.
Estado diferente de zero
Se o app de carteira fornecer um ou mais cartões, o bloco na aba vai aparecer como mostrado na Figura 9.
Figura 9. Exemplo de bloco na sombra quando o app da Carteira tem um ou mais cards.
Ao clicar no bloco, um carrossel de cards é mostrado.
A tela de bloqueio mostra um botão que abre a Carteira de acesso rápido.
Figura 10. Interface da Carteira de acesso rápido com um cartão exibido.
Se o cartão exibido representar uma forma de pagamento NFC, segurar o smartphone em um terminal de pagamento NFC vai fazer com que essa forma de pagamento seja usada e a visualização da carteira seja dispensada.
Clicar em um card abre a atividade detalhada dele.
Se vários cards forem fornecidos por
QuickAccessWalletService
, o usuário poderá deslizar entre eles.O menu flutuante contém uma entrada: abra as configurações da tela de bloqueio para que o usuário possa alterar a opção Mostrar carteira.
Testes de estado de bloqueio
- Se o smartphone estiver bloqueado, a carteira vai aparecer na sombra de configurações rápidas com a descrição Adicionar um cartão se não houver nenhum cartão no app de pagamento padrão ou Desbloquear para usar se houver cartões no app de pagamento padrão.
- Se o smartphone estiver bloqueado, a visibilidade da Carteira na tela de bloqueio será
controlada pela configuração
Secure.LOCKSCREEN_SHOW_WALLET
, que é controlada em "Configurações". - Se o smartphone estiver bloqueado,
LOCKSCREEN_SHOW_WALLET
forfalse
e nenhum cartão existir no app de pagamento NFC padrão, a carteira não será exibida na tela de bloqueio. - Se o smartphone estiver bloqueado,
LOCKSCREEN_SHOW_WALLET
fortrue
e nenhum cartão existir no app de pagamento NFC padrão, a carteira não será exibida na tela de bloqueio. - Se o smartphone estiver bloqueado,
LOCKSCREEN_SHOW_WALLET
fortrue
e os cartões estiverem no app de pagamento por aproximação padrão, a carteira será exibida na tela de bloqueio. - Desbloquear o smartphone enquanto a Carteira estiver sendo exibida na tela de bloqueio faz com que os cards sejam solicitados, o que pode resultar em um conteúdo diferente.
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 de conteúdo dos cards.
- Deslizar para a esquerda e direita com o TalkBack ativado seleciona cada card. Os usuários do Talkback podem selecionar e usar uma forma de pagamento NFC em um terminal de pagamento NFC.
Testes manuais para o Android 11
Para testar os principais recursos da Carteira de acesso rápido, é necessário ter um terminal de pagamento
NFC (real ou falso) e um app de pagamento NFC que implemente
QuickAccessWalletService
(app de carteira). Os recursos principais que precisam ser testados
incluem disponibilidade, estado zero, seleção de cartão e comportamento da tela de bloqueio.
Disponibilidade
- Se a configuração
GLOBAL_ACTIONS_PANEL_ENABLED
fortrue
e o app de pagamento por NFC padrão oferecer suporte ao recurso, a Carteira de acesso rápido vai estar acessível. - Se a configuração
GLOBAL_ACTIONS_PANEL_ENABLED
forfalse
e o app de pagamento NFC padrão for compatível com o recurso, a Carteira de acesso rápido não será acessível. - Se a configuração
GLOBAL_ACTIONS_PANEL_ENABLED
fortrue
e o app de pagamento NFC padrão não tiver suporte ao recurso, a Carteira de acesso rápido não será acessível. - Se a configuração
GLOBAL_ACTIONS_PANEL_ENABLED
forfalse
e o app padrão de pagamento por aproximação não oferecer suporte ao recurso, a carteira de acesso rápido não vai estar acessível.
Estado zero
- Se
QuickAccessWalletService
for ativado e exportado, mas não fornecer nenhum cartão, a interface da Carteira de acesso rápido vai mostrar a visualização de estado vazia. Clicar na visualização de estado vazio abre o app Carteira.
Figura 11. Visualização de estado vazio na interface do Acesso rápido da Carteira.
Estado diferente de zero
Se o app de carteira fornecer um ou mais cartões, eles serão exibidos na interface da Carteira de acesso rápido.
Figura 12. Interface da Carteira de Acesso rápido com um cartão exibido. Se o cartão exibido representar uma forma de pagamento NFC, segurar o smartphone perto de um terminal de pagamento NFC faz com que essa forma de pagamento seja usada e a visualização de carteira seja dispensada.
Clicar em um cartão mostrado dispensa a visualização da carteira e abre a atividade detalhada dele.
Se vários cards forem fornecidos por
QuickAccessWalletService
, o usuário poderá deslizar entre eles.O menu flutuante contém duas entradas: uma que abre o app Carteira e outra que abre a tela Mostrar cartões e passes nas Configurações.
Testes de estado de bloqueio
- Se o smartphone estiver bloqueado, a visibilidade da carteira será controlada pela
configuração
Settings.Secure.POWER_MENU_LOCK_SHOW_CONTENT
, que pode ser controlada em "Configurações". - Se o smartphone estiver bloqueado e
POWER_MENU_LOCK_SHOW_CONTENT
forfalse
, a carteira não será exibida. - Se o smartphone estiver bloqueado e
POWER_MENU_LOCK_SHOW_CONTENT
estivertrue
, a carteira será exibida. - Desbloquear o smartphone enquanto a Carteira estiver sendo mostrada na tela de bloqueio faz com que os cards sejam consultados novamente, o que pode resultar em um conteúdo diferente.
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 de conteúdo dos cards.
- Deslizar para a esquerda e direita com o TalkBack ativado seleciona cada card. Os usuários do TalkBack podem selecionar e usar uma forma de pagamento NFC em um terminal de pagamento NFC.