Funkcja szybkiego dostępu do Portfela, dostępna od Androida 11, umożliwia użytkownikowi dostęp do kart płatniczych i powiązanych biletów bezpośrednio z menu zasilania. Główne przypadki użycia to wybieranie odpowiedniej formy płatności przed dokonaniem transakcji na terminalu NFC oraz szybki dostęp do lotów i innych biletów na nadchodzące wydarzenia.
W Androidzie 12 lub nowszym funkcja szybkiego dostępu do Portfela jest dostępna w panelu powiadomień, jak pokazano na rysunkach 1 i 2.
|
|
W Androidzie 11 ta funkcja jest dostępna w menu zasilania, jak pokazano na rysunku 3.
Wymagania
Aby korzystać z funkcji szybkiego dostępu do Portfela, urządzenie musi mieć moduł NFC. Ta funkcja
jest powiązana z QuickAccessWalletService domyślnej aplikacji płatniczej NFC, co oznacza
że urządzenie musi też obsługiwać emulację karty NFC
opartą na hoście (HCE).
Omówienie funkcji
Funkcja szybkiego dostępu do Portfela składa się z 2 części: interfejsu szybkiego dostępu do Portfela i dostawcy kart szybkiego dostępu do Portfela.
W Androidzie 12 lub nowszym interfejs Portfela działa w interfejsie systemowym
i znajduje się w
frameworks/base/packages/SystemUI/src/com/android/systemui/wallet. W
Androidzie 11 interfejs Portfela, który znajduje się w
platform/packages/apps/QuickAccessWallet,
musi być zainstalowany i dodany do białej listy.
Dostawcą kart szybkiego dostępu do Portfela jest domyślna aplikacja płatnicza NFC. Użytkownicy mogą mieć zainstalowanych jednocześnie kilka aplikacji płatniczych NFC, ale tylko domyślna aplikacja płatnicza NFC może wyświetlać karty w menu zasilania. Możesz określić, która aplikacja płatnicza NFC ma być początkowo ustawiona jako domyślna, ale użytkownicy mogą wybrać inną aplikację w Ustawieniach. Jeśli zainstalowana jest tylko 1 aplikacja płatnicza NFC, automatycznie staje się ona
domyślną (patrz
CardEmulationManager).
Implementacja
Aby udostępniać karty w interfejsie szybkiego dostępu do Portfela, aplikacje płatnicze NFC
muszą implementować
QuickAccessWalletService.
Aplikacje płatnicze muszą zawierać wpis w pliku manifestu reklamujący usługę.
Aby zapewnić, że tylko interfejs systemowy może powiązać się z usługą QuickAccessWalletService, aplikacja płatnicza NFC musi wymagać uprawnienia android.permission.BIND_QUICK_ACCESS_WALLET_SERVICE. Wymaganie tego uprawnienia zapewnia, że tylko interfejs systemowy może powiązać się z usługą 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>
Dodatkowe informacje o portfelu znajdziesz w połączonym pliku XML:
<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"/>
Następnie aplikacja płatnicza musi zaimplementować usługę 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
}
}
Jeśli HostApduService zacznie obsługiwać transakcję z użyciem NFC i w konsekwencji uruchomi działanie, aby wyświetlić postęp i wynik płatności, powinna też spróbować uzyskać odniesienie do powiązanej usługi QuickAccessWalletService i wywołać QuickAccessWalletService#sendEvent z typem zdarzenia TYPE_NFC_PAYMENT_STARTED. Spowoduje to zamknięcie interfejsu szybkiego dostępu do Portfela, dzięki czemu użytkownik będzie mógł bez przeszkód zobaczyć aktywność związaną z płatnościami.
Dodatkową dokumentację dotyczącą implementowania QuickAccessWalletService znajdziesz w
QuickAccessWalletService
oraz w
TestQuickAccessWalletService
teście CTS.
Włączanie interfejsu szybkiego dostępu do Portfela w Androidzie 11
Aby skonfigurować szybki dostęp do Portfela tak, aby był dostępny w menu zasilania
w Androidzie 11, dodaj
QuickAccessWallet
cel do kompilacji i włącz wtyczkę globalactions.wallet, dodając
pogrubioną linię w poniższym przykładzie kodu do pliku
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>
Określ domyślną aplikację płatniczą NFC w
pliku konfiguracyjnym ustawień
za pomocą def_nfc_payment_component.
Domyślna aplikacja płatnicza NFC musi udostępniać
QuickAccessWalletService
aby udostępniać karty w szybkim dostępie do Portfela. Jeśli domyślna aplikacja płatnicza NFC nie eksportuje tej usługi, interfejs Portfela jest ukryty.
Szczegóły implementacji usługi QuickAccessWalletService
Usługa QuickAccessWalletService ma 3 metody abstrakcyjne, które trzeba zaimplementować: onWalletCardsRequested, onWalletCardSelected i onWalletDismissed. Poniższy diagram sekwencji ilustruje sekwencję wywołań, gdy szybki dostęp do Portfela jest wyświetlany bezpośrednio przed płatnością NFC.
Nie wszystkie wyświetlenia szybkiego dostępu do Portfela są poprzedzone płatnością NFC, ale rysunek 4 powyżej ilustruje wszystkie możliwości usługi QuickAccessWalletService. W tym przykładzie dostawca kart szybkiego dostępu do Portfela implementuje elementy zaznaczone na niebiesko. Zakładamy, że karty płatnicze są przechowywane na urządzeniu w bazie danych i są dostępne za pomocą interfejsu o nazwie PaymentCardManager. Zakładamy też, że działanie o nazwie PaymentActivity wyświetla wynik płatności NFC. Proces przebiega w ten sposób:
- Użytkownik wykonuje gest, aby wyświetlić szybki dostęp do Portfela.
Interfejs szybkiego dostępu do Portfela (część interfejsu systemowego) sprawdza menedżera pakietów, aby zobaczyć, czy domyślna aplikacja płatnicza NFC eksportuje usługę
QuickAccessWalletService.- Jeśli usługa nie jest eksportowana, szybki dostęp do Portfela nie jest wyświetlany.
Interfejs szybkiego dostępu do Portfela wiąże się z usługą
QuickAccessWalletServicei wywołuje metodęonWalletCardsRequested. Ta metoda przyjmuje obiekt żądania zawierający dane o liczbie i rozmiarze kart, które można udostępnić, oraz wywołanie zwrotne. Wywołanie zwrotne można wywołać z wątku w tle.Usługa
QuickAccessWalletServiceoblicza karty, które chce wyświetlić, a następnie wywołuje metodęonSuccessw podanym wywołaniu zwrotnym. Zalecamy, aby usługa wykonywała te działania w wątku w tle.Gdy tylko karty zostaną wyświetlone, interfejs systemowy powiadamia usługę
QuickAccessWalletService, że pierwsza karta została wybrana, wywołując metodęonWalletCardSelected.- Metoda
onWalletCardSelectedjest wywoływana za każdym razem, gdy użytkownik wybierze nową kartę. - Metoda
onWalletCardSelectedmoże być wywoływana nawet wtedy, gdy aktualnie wybrana karta nie uległa zmianie.
- Metoda
Gdy użytkownik zamknie szybki dostęp do Portfela, interfejs systemowy powiadomi o tym usługę
QuickAccessWalletService, wywołując metodęonWalletDismissed.
W powyższym przykładzie użytkownik zbliża telefon do terminala płatniczego NFC, gdy wyświetlany jest portfel. Kluczowym komponentem obsługi płatności NFC
jest usługa HostApduService, którą trzeba zaimplementować, aby przetwarzać APDU
dostarczane przez czytnik NFC (więcej informacji znajdziesz w artykule
Emulacja karty oparta na hoście).
Zakładamy, że aplikacja płatnicza uruchamia działanie, aby wyświetlić postęp i wynik interakcji z terminalem NFC. Jednak interfejs szybkiego dostępu do Portfela jest wyświetlany na wierzchu okna aplikacji, co oznacza, że aktywność związana z płatnościami jest zasłonięta przez interfejs szybkiego dostępu do Portfela. Aby to naprawić, aplikacja musi powiadomić interfejs systemowy, że interfejs szybkiego dostępu do Portfela powinien zostać zamknięty. Może to zrobić, uzyskując odniesienie do powiązanej usługi QuickAccessWalletService i wywołując metodę sendWalletServiceEvent z typem zdarzenia TYPE_NFC_PAYMENT_STARTED.
Przykładowa implementacja usługi 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();
});
}
}
Więcej informacji o QuickAccessWalletService znajdziesz w
QuickAccessWalletService dokumentacji API.
Uprawnienia
Wpis w pliku manifestu dla usługi QuickAccessWalletService musi wymagać uprawnienia android.permission.BIND_QUICK_ACCESS_WALLET_SERVICE wprowadzonego w Androidzie 11. Jest to uprawnienie na poziomie podpisu, które ma interfejs systemowy, co oznacza, że tylko proces interfejsu systemowego może powiązać się z implementacjami usługi QuickAccessWalletService. Pamiętaj, że aplikacje wczytywane z boku mogą zgłaszać to uprawnienie i uzyskiwać pełny dostęp do danych usługi QuickAccessWalletService na urządzeniach z Androidem 10 lub starszym. Aby temu zapobiec, zalecamy, aby usługa sprawdzała wersję kompilacji w metodzie onCreate i włączała usługę tylko na urządzeniach z Androidem 11 lub nowszym. Poza uprawnieniami niezbędnymi do świadczenia usług płatniczych host card emulation nie są wymagane żadne inne uprawnienia aplikacji.
Jeśli domyślna aplikacja płatnicza NFC nie implementuje ani nie eksportuje usługi QuickAccessWalletService, interfejs szybkiego dostępu do Portfela nie jest wyświetlany.
Ustawienia w Androidzie 12
Aby włączyć lub wyłączyć szybki dostęp do Portfela na ekranie blokady, użytkownicy mogą użyć przełącznika Pokaż portfel w Ustawienia > Wyświetlacz > Ekran blokady. Aby wyłączyć portfel w panelu powiadomień, użytkownicy muszą go ręcznie edytować w panelu szybkich ustawień.
Rysunek 5. Przełącznik „Pokaż portfel” na stronie „Ekran blokady” w Ustawieniach.
Ustawienia w Androidzie 11
Użytkownicy mogą wyłączyć funkcję szybkiego dostępu do Portfela w aplikacji Ustawienia. Strona ustawień znajduje się w Ustawienia > System > Gesty > Karty i bilety.
Dostosowywanie
Dodawanie widoku szybkiego dostępu do Portfela w innej lokalizacji w interfejsie systemowym
Interfejs
szybkiego dostępu do Portfela
jest tworzony jako
wtyczka systemowa.
Chociaż implementacja AOSP używa go w
GlobalActionsDialog
(wyświetlanym po długim naciśnięciu przycisku zasilania), możesz przenieść tę funkcję za inny gest
o ile zachowasz umowę określoną przez interfejs wtyczki.
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);
}
}
Interfejs szybkiego dostępu do Portfela implementuje GlobalActionsPanelPlugin i PanelViewController.
GlobalActionsDialog
pobiera instancję wtyczki portfela za pomocą
com.android.systemui.Dependency:
GlobalActionsPanelPlugin mPanelPlugin =
Dependency.get(ExtensionController.class)
.newExtension(GlobalActionsPanelPlugin.class)
.withPlugin(GlobalActionsPanelPlugin.class)
.build()
.get();
Po sprawdzeniu, czy wtyczka nie jest wartością null i czy PanelViewController
zwrócony przez onPanelShown nie jest wartością null, okno dialogowe dołącza View dostarczony
przez getPanelContent do własnego View i udostępnia odpowiednie wywołania zwrotne dla
zdarzeń systemowych.
// 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();
Aby usunąć szybki dostęp do Portfela z menu zasilania, pomiń cel QuickAccessWallet w kompilacji systemu. Aby usunąć szybki dostęp do Portfela z menu zasilania, ale dodać go do innego widoku udostępnianego przez interfejs systemowy,
dodaj cel kompilacji i usuń odniesienia do GlobalActionsPanelPlugin
z
GlobalActionsImpl.
Ustawianie konfiguracji domyślnych
Android 12
W Androidzie 12 lub nowszym szybki dostęp do Portfela jest zawsze widoczny w panelu szybkich ustawień. Widoczność szybkiego dostępu do Portfela na ekranie blokady jest ograniczona przez to bezpieczne ustawienie: LOCKSCREEN_SHOW_WALLET. To ustawienie określa, czy ikona szybkiego dostępu do Portfela ma być wyświetlana w prawym dolnym rogu ekranu blokady. To ustawienie jest domyślnie ustawione na true, ale użytkownik może je wyłączyć w Ustawienia > Wyświetlacz > Ekran blokady > Pokaż portfel.
Android 11
W Androidzie 11 widoczność szybkiego dostępu do Portfela jest ograniczona przez 2 bezpieczne ustawienia: GLOBAL_ACTIONS_PANEL_ENABLED i GLOBAL_ACTIONS_PANEL_AVAILABLE. Ustawienie AVAILABLE określa, czy tę funkcję można włączać i wyłączać w Ustawieniach. To ustawienie jest ustawione na true przez
WalletPluginService.
Jeśli QuickAccessWallet nie jest uwzględniony w kompilacji, ustawienie pozostaje false. Ustawienie ENABLED jest domyślnie ustawione na true w tym samym miejscu, ale użytkownik może je wyłączyć w Ustawieniach. Aby zmienić domyślne działanie, zmodyfikuj WalletPluginService#enableFeatureInSettings.
Weryfikacja
Aby zweryfikować implementację szybkiego dostępu do Portfela, uruchom testy CTS i testy ręczne. Zmiany w wtyczce powinny też obejmować testy robolectric.
Testy CTS
Uruchom testy CTS znajdujące się w
cts/tests/quickaccesswallet.
Testy ręczne w Androidzie 12
Testowanie podstawowych funkcji szybkiego dostępu do Portfela wymaga terminala płatniczego NFC (prawdziwego lub fałszywego) oraz aplikacji płatniczej NFC, która implementuje usługę QuickAccessWalletService (aplikacja portfela). Podstawowe funkcje, które trzeba przetestować, to dostępność, stan początkowy, wybór karty i działanie na ekranie blokady.
Dostępność
- Jeśli domyślna aplikacja płatnicza NFC nie obsługuje tej funkcji, szybki dostęp do Portfela nie jest dostępny ani w szybkich ustawieniach, ani na ekranie blokady.
- Jeśli domyślna aplikacja płatnicza NFC obsługuje tę funkcję, szybki dostęp do Portfela jest dostępny w panelu szybkich ustawień.
- Jeśli domyślna aplikacja płatnicza NFC obsługuje tę funkcję i ustawienie
LOCKSCREEN_SHOW_WALLETma wartośćtrue, szybki dostęp do Portfela jest dostępny na ekranie blokady. - Jeśli domyślna aplikacja płatnicza NFC obsługuje tę funkcję i ustawienie
LOCKSCREEN_SHOW_WALLETma wartośćfalse, szybki dostęp do Portfela nie jest dostępny na ekranie blokady.
Stan początkowy
Jeśli usługa
QuickAccessWalletServicejest włączona i eksportowana, ale nie udostępnia żadnych kart, kafelek w panelu powiadomień wygląda tak jak w przykładzie na rysunku 7. Kliknięcie kafelka otwiera domyślną aplikację płatniczą NFC.
Rysunek 7. Przykładowy kafelek w panelu powiadomień przedstawiający domyślną aplikację płatniczą NFC.
Kliknięcie widoku pustego stanu, jak pokazano na rysunku 8, otwiera domyślną aplikację płatniczą NFC. Ten widok pustego stanu jest wyświetlany tylko wtedy, gdy użytkownik ma w portfelu 1 kartę, usunie ją ze strony szczegółów karty, a następnie wróci do widoku portfela.
Na ekranie blokady wyświetla się ikona portfela.
Rysunek 8. Widok pustego stanu w interfejsie szybkiego dostępu do Portfela.
Stan inny niż początkowy
Jeśli aplikacja portfela udostępnia co najmniej 1 kartę, kafelek w panelu powiadomień wygląda tak jak na rysunku 9.
Rysunek 9. Przykładowy kafelek w panelu powiadomień, gdy aplikacja portfela ma co najmniej 1 kartę.
Kliknięcie kafelka powoduje wyświetlenie karuzeli kart.
Na ekranie blokady wyświetla się przycisk, który otwiera szybki dostęp do Portfela.
Rysunek 10. Interfejs szybkiego dostępu do Portfela z wyświetloną kartą.
Jeśli wyświetlana karta reprezentuje formę płatności NFC, przyłożenie telefonu do terminala płatniczego NFC spowoduje użycie tej formy płatności i zamknięcie widoku portfela.
Kliknięcie wyświetlanej karty otwiera szczegółowe działanie dla tej karty.
Jeśli usługa
QuickAccessWalletServiceudostępnia wiele kart, użytkownik może przełączać się między nimi.Rozszerzone menu zawiera 1 pozycję: otwórz ustawienia ekranu blokady, aby użytkownik mógł zmienić opcję Pokaż portfel.
Testy stanu blokady
- Jeśli telefon jest zablokowany, portfel jest widoczny w panelu szybkich ustawień z opisem Dodaj kartę (jeśli w domyślnej aplikacji płatniczej nie ma karty) lub Odblokuj, aby użyć (jeśli w domyślnej aplikacji płatniczej są karty).
- Jeśli telefon jest zablokowany, widoczność portfela na ekranie blokady jest kontrolowana przez ustawienie
Secure.LOCKSCREEN_SHOW_WALLET, które można zmienić w Ustawieniach. - Jeśli telefon jest zablokowany, ustawienie
LOCKSCREEN_SHOW_WALLETma wartośćfalsei w domyślnej aplikacji płatniczej NFC nie ma karty, portfel nie jest wyświetlany na ekranie blokady. - Jeśli telefon jest zablokowany, ustawienie
LOCKSCREEN_SHOW_WALLETma wartośćtruei w domyślnej aplikacji płatniczej NFC nie ma karty, portfel nie jest wyświetlany na ekranie blokady. - Jeśli telefon jest zablokowany, ustawienie
LOCKSCREEN_SHOW_WALLETma wartośćtruei w domyślnej aplikacji płatniczej NFC są karty, portfel jest wyświetlany na ekranie blokady. - Odblokowanie telefonu, gdy portfel jest wyświetlany na ekranie blokady, powoduje ponowne wysłanie zapytania o karty, co może skutkować wyświetleniem innej zawartości karty.
Testy ułatwień dostępu
- Użytkownicy TalkBack mogą poruszać się po widoku portfela, przesuwając palcem w lewo i w prawo oraz słuchając opisów kart.
- Przesuwanie palcem w lewo i w prawo przy włączonym TalkBack powoduje wybieranie kolejnych kart. Użytkownicy TalkBack mogą wybrać i użyć formy płatności NFC na terminalu płatniczym NFC.
Testy ręczne w Androidzie 11
Testowanie podstawowych funkcji szybkiego dostępu do Portfela wymaga terminala płatniczego NFC (prawdziwego lub fałszywego) oraz aplikacji płatniczej NFC, która implementuje usługę QuickAccessWalletService (aplikacja portfela). Podstawowe funkcje, które trzeba przetestować, to dostępność, stan początkowy, wybór karty i działanie na ekranie blokady.
Dostępność
- Jeśli ustawienie
GLOBAL_ACTIONS_PANEL_ENABLEDma wartośćtruei domyślna aplikacja płatnicza NFC obsługuje tę funkcję, szybki dostęp do Portfela jest dostępny. - Jeśli ustawienie
GLOBAL_ACTIONS_PANEL_ENABLEDma wartośćfalsei domyślna aplikacja płatnicza NFC obsługuje tę funkcję, szybki dostęp do Portfela nie jest dostępny. - Jeśli ustawienie
GLOBAL_ACTIONS_PANEL_ENABLEDma wartośćtruei domyślna aplikacja płatnicza NFC nie obsługuje tej funkcji, szybki dostęp do Portfela nie jest dostępny. - Jeśli ustawienie
GLOBAL_ACTIONS_PANEL_ENABLEDma wartośćfalsei domyślna aplikacja płatnicza NFC nie obsługuje tej funkcji, szybki dostęp do Portfela nie jest dostępny.
Stan początkowy
- Jeśli usługa
QuickAccessWalletServicejest włączona i eksportowana, ale nie udostępnia żadnych kart, interfejs szybkiego dostępu do Portfela wyświetla widok pustego stanu. Kliknięcie widoku pustego stanu otwiera aplikację portfela.
Rysunek 11. Widok pustego stanu w interfejsie szybkiego dostępu do Portfela.
Stan inny niż początkowy
Jeśli aplikacja portfela udostępnia co najmniej 1 kartę, karty są wyświetlane w interfejsie szybkiego dostępu do Portfela.
Rysunek 12. Interfejs szybkiego dostępu do Portfela z wyświetloną kartą wyświetloną. Jeśli wyświetlana karta reprezentuje formę płatności NFC, przyłożenie telefonu do terminala płatniczego NFC spowoduje użycie tej formy płatności i zamknięcie widoku portfela.
Kliknięcie wyświetlanej karty powoduje zamknięcie widoku portfela i otwarcie szczegółowego działania dla tej karty.
Jeśli usługa
QuickAccessWalletServiceudostępnia wiele kart, użytkownik może przełączać się między nimi.Menu przepełnienia zawiera 2 pozycje: jedną, która otwiera aplikację portfela, i drugą, która otwiera ekran Pokaż karty i bilety w Ustawieniach.
Testy stanu blokady
- Jeśli telefon jest zablokowany, widoczność portfela jest kontrolowana przez ustawienie
Settings.Secure.POWER_MENU_LOCK_SHOW_CONTENT, które można zmienić w Ustawieniach. - Jeśli telefon jest zablokowany, a ustawienie
POWER_MENU_LOCK_SHOW_CONTENTma wartośćfalse, portfel nie jest wyświetlany. - Jeśli telefon jest zablokowany, a ustawienie
POWER_MENU_LOCK_SHOW_CONTENTma wartośćtrue, portfel jest wyświetlany. - Odblokowanie telefonu, gdy portfel jest wyświetlany na ekranie blokady, powoduje ponowne wysłanie zapytania o karty, co może skutkować wyświetleniem innej zawartości karty.
Testy ułatwień dostępu
- Użytkownicy TalkBack mogą poruszać się po widoku portfela, przesuwając palcem w lewo i w prawo oraz słuchając opisów kart.
- Przesuwanie palcem w lewo i w prawo przy włączonym TalkBack powoduje wybieranie kolejnych kart. Użytkownicy TalkBack mogą wybrać i użyć formy płatności NFC na terminalu płatniczym NFC.