Schnellzugriff auf Karten

Mit der Funktion „Schnellzugriffs-Wallet“, die ab Android 11 verfügbar ist, können Nutzer direkt über das Ein-/Aus-Menü auf Zahlungskarten und relevante Karten/Tickets zugreifen. Zu den wichtigsten Anwendungsfällen gehören die Auswahl der richtigen Zahlungsmethode vor einer Transaktion an einem NFC-Terminal und der schnelle Zugriff auf Flüge und andere Karten/Tickets für anstehende Veranstaltungen.

Unter Android 12 oder höher ist die Wallet-Funktion für den schnellen Zugriff über den Benachrichtigungs-Schirm verfügbar (siehe Abbildung 1 und Abbildung 2).

Funktion „Schnellzugriff auf Wallet“ in der Benachrichtigungsleiste
Abbildung 1. Funktion „Schnellzugriff auf Wallet“ (Gerät gesperrt)
Schnellzugriff auf Wallet-Funktion in der Farbe
Abbildung 2: Funktion „Schnellzugriff auf Wallet“ (Gerät entsperrt)

Unter Android 11 ist die Funktion im Menü „Ein/Aus“ verfügbar (siehe Abbildung 3).

Funktion „Schnellzugriff auf Karten“ im Ein/Aus-Menü
Abbildung 3: Die Funktion „Schnellzugriff auf Karten“ im Ein-/Aus-Menü.

Voraussetzungen

Ihr Gerät muss NFC unterstützen, damit Sie die Funktion „Wallet für den Schnellzugriff“ verwenden können. Die Funktion wird an QuickAccessWalletService der Standard-NFC-Zahlungs-App gebunden. Das bedeutet, dass das Gerät auch hostbasierte Kartenemulation (HCE) unterstützen muss.

Funktionsübersicht

Die elektronische Geldbörse für den Schnellzugriff besteht aus zwei Teilen: der Benutzeroberfläche der elektronischen Geldbörse für den Schnellzugriff und dem Kartenanbieter der elektronischen Geldbörse für den Schnellzugriff.

Unter Android 12 oder höher wird die Wallet-Benutzeroberfläche in der System-UI ausgeführt und befindet sich unter frameworks/base/packages/SystemUI/src/com/android/systemui/wallet. In Android 11 muss die Wallet-UI, die sich in platform/packages/apps/QuickAccessWallet befindet, installiert und auf die Zulassungsliste gesetzt werden.

Der Kartenanbieter für den Schnellzugriff ist die standardmäßige NFC-Zahlungs-App. Nutzer können mehrere NFC-Zahlungs-Apps gleichzeitig installieren, aber nur die standardmäßige NFC-Zahlungs-App kann Karten im Ein/Aus-Menü anzeigen. Sie können angeben, welche NFC-Zahlungs-App standardmäßig verwendet werden soll. Nutzer können jedoch in den Einstellungen eine andere App auswählen. Wenn nur eine NFC-Zahlungs-App installiert ist, wird sie automatisch als Standard festgelegt (siehe CardEmulationManager).

Implementierung

Damit Karten für die Wallet-Benutzeroberfläche für den schnellen Zugriff bereitgestellt werden können, müssen NFC-Zahlungs-Apps QuickAccessWalletService implementieren. Zahlungs-Apps müssen einen Manifesteintrag enthalten, in dem für den Dienst geworben wird.

Damit nur die System-UI an QuickAccessWalletService gebunden werden kann, muss die NFC-Zahlungs-App die Berechtigung android.permission.BIND_QUICK_ACCESS_WALLET_SERVICE anfordern. Wenn diese Berechtigung erforderlich ist, kann nur die System-UI an QuickAccessWalletService gebunden werden.

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

Die verknüpfte XML-Datei enthält zusätzliche Informationen zum Wallet:

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

Als Nächstes muss die Zahlungs-App QuickAccessWalletService implementieren:

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

Wenn HostApduService mit der Verarbeitung einer NFC-Transaktion beginnt und folglich eine Aktivität startet, um den Fortschritt und das Ergebnis der Zahlung anzuzeigen, sollte auch versucht werden, eine Referenz auf die gebundene QuickAccessWalletService abzurufen und QuickAccessWalletService#sendEvent mit dem Ereignistyp TYPE_NFC_PAYMENT_STARTED aufzurufen. Dadurch wird die Benutzeroberfläche für den schnellen Zugriff auf die Brieftasche geschlossen und der Nutzer hat einen ungehinderten Blick auf die Zahlungsaktivitäten.

Weitere Informationen zum Implementieren von QuickAccessWalletService finden Sie unter QuickAccessWalletService und den CTS-Test TestQuickAccessWalletService.

Schnellzugriff auf Wallet-UI in Android 11 aktivieren

Wenn Sie die Wallet für den schnellen Zugriff so konfigurieren möchten, dass sie in Android 11 über das Ein-/Aus-Menü verfügbar ist, fügen Sie das Ziel QuickAccessWallet in den Build ein und aktivieren Sie das globalactions.wallet-Plug-in, indem Sie der Datei overlay/frameworks/base/packages/SystemUI/res/values/config.xml die fett formatierte Zeile im folgenden Codebeispiel hinzufügen.

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

Geben Sie in der Konfigurationsdatei für die Einstellungen mit def_nfc_payment_component die standardmäßige NFC-Zahlungs-App an.

Die standardmäßige NFC-Zahlungs-App muss QuickAccessWalletService freigeben, um Karten für die Schnellzugriffs-Brieftasche bereitzustellen. Wenn die Standard-App für NFC-Zahlungen diesen Dienst nicht exportiert, wird die Wallet-Benutzeroberfläche ausgeblendet.

Details zur Implementierung von QuickAccessWalletService

QuickAccessWalletService hat drei abstrakte Methoden, die implementiert werden müssen: onWalletCardsRequested, onWalletCardSelected und onWalletDismissed. Das folgende Sequenzdiagramm zeigt eine Aufrufsequenz, wenn die Wallet für den schnellen Zugriff unmittelbar vor einer NFC-Zahlung aufgerufen wird.

Sequenzdiagramm für den Schnellzugriff auf Karten

Beispiel für eine Aufrufsequenz beim Aufrufen des Schnellzugriffs-Wallets
Abbildung 4: Beispiel für eine Aufrufsequenz beim Aufrufen des Schnellzugriffs-Wallets.

Nicht auf alle Aufrufe des Schnellzugriffs Wallet folgt eine NFC-Zahlung. In Abbildung 4 oben sind jedoch alle Funktionen von QuickAccessWalletService dargestellt. In diesem Beispiel implementiert der Kartenanbieter für den schnellen Zugriff die blau umrissenen Elemente. Es wird davon ausgegangen, dass Zahlungskarten auf dem Gerät in einer Datenbank gespeichert sind und über eine Benutzeroberfläche namens PaymentCardManager darauf zugegriffen wird. Außerdem wird davon ausgegangen, dass eine Aktivität namens PaymentActivity das Ergebnis einer NFC-Zahlung anzeigt. Der Ablauf sieht so aus:

  1. Der Nutzer führt eine Geste aus, um die Wallet für den Schnellzugriff aufzurufen.
  2. Die Benutzeroberfläche der Schnellzugriffs-Brieftasche (Teil der System-UI) prüft im Paketmanager, ob die Standard-NFC-Zahlungs-App QuickAccessWalletService exportiert.

    • Wenn der Dienst nicht exportiert wird, wird der Schnellzugriff nicht angezeigt.
  3. Die Benutzeroberfläche für den Schnellzugriff auf die Geldbörse bindet an die QuickAccessWalletService und ruft onWalletCardsRequested auf. Diese Methode nimmt ein Anfrageobjekt mit Daten zur Anzahl und Größe der Karten an, die zur Verfügung gestellt werden können, und einen Rückruf entgegen. Der Callback kann aus einem Hintergrundthread aufgerufen werden.

  4. QuickAccessWalletService berechnet die Karten, die angezeigt werden sollen, und ruft dann die onSuccess-Methode für den angegebenen Callback auf. Es wird empfohlen, dass der Dienst diese Aktionen in einem Hintergrund-Thread ausführt.

  5. Sobald die Karten angezeigt werden, benachrichtigt die System-UI QuickAccessWalletService, dass die erste Karte ausgewählt wurde, indem onWalletCardSelected aufgerufen wird.

    • onWalletCardSelected wird jedes Mal aufgerufen, wenn der Nutzer eine neue Karte auswählt.
    • onWalletCardSelected kann auch dann aufgerufen werden, wenn sich die aktuell ausgewählte Karte nicht geändert hat.
  6. Wenn der Nutzer die Schnellzugriffs-Brieftasche schließt, benachrichtigt die System-UI QuickAccessWalletService, indem onWalletDismissed aufgerufen wird.

Im obigen Beispiel hält der Nutzer das Smartphone in Reichweite eines NFC-Zahlungsterminals, während die Wallet angezeigt wird. Eine wichtige Komponente für die Verarbeitung von NFC-Zahlungen ist HostApduService. Diese muss implementiert werden, um vom NFC-Lesegerät bereitgestellte APDUs zu verarbeiten. Weitere Informationen finden Sie unter Hostbasierte Kartenemulation. Es wird davon ausgegangen, dass die Zahlungs-App eine Aktivität startet, um den Fortschritt und das Ergebnis der Interaktion mit dem NFC-Terminal anzuzeigen. Die Benutzeroberfläche von Quick Access Wallet wird jedoch über dem App-Fenster angezeigt, sodass die Zahlungsaktivitäten von der Benutzeroberfläche von Quick Access Wallet verdeckt werden. Um das Problem zu beheben, muss die App die System-UI darüber informieren, dass die Wallet-UI für den Schnellzugriff geschlossen werden soll. Dazu kann er einen Verweis auf die gebundene QuickAccessWalletService abrufen und sendWalletServiceEvent mit dem Ereignistyp TYPE_NFC_PAYMENT_STARTED aufrufen.

Beispielimplementierung für 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();
    });
  }
}

Weitere Informationen zu QuickAccessWalletService finden Sie in der API-Referenz zu QuickAccessWalletService.

Berechtigungen

Der Manifesteintrag für QuickAccessWalletService muss die in Android 11 eingeführte Berechtigung android.permission.BIND_QUICK_ACCESS_WALLET_SERVICE erfordern. Dies ist eine Berechtigung auf Signaturebene, die von der System-UI gehalten wird. Das bedeutet, dass nur der System-UI-Prozess an Implementierungen von QuickAccessWalletService gebunden werden kann. Beachten Sie, dass per Sideload installierte Apps diese Berechtigung anfordern und auf Geräten mit Android 10 oder niedriger vollen Zugriff auf QuickAccessWalletService-Daten erhalten können. Um dies zu verhindern, wird empfohlen, dass der Dienst die Build-Version in onCreate prüft und den Dienst nur auf Geräten mit Android 11 und höher aktiviert. Es sind nur die App-Berechtigungen erforderlich, die für die Bereitstellung von Zahlungsdiensten für die Hostkartenemulation erforderlich sind.

Wenn die standardmäßige NFC-Zahlungs-App QuickAccessWalletService nicht implementiert oder exportiert, wird die Wallet-UI für den Schnellzugriff nicht angezeigt.

Einstellungen in Android 12

Nutzer können die Schnellzugriffs-Geldbörse über die Ein/Aus-Schaltfläche Geldbörse anzeigen in den Einstellungen > Display > Sperrbildschirm aktivieren oder deaktivieren. Wenn Nutzer die Wallet in der Leiste deaktivieren möchten, müssen sie sie manuell in der Leiste mit den Schnelleinstellungen bearbeiten.

Ein/Aus-Schaltfläche, um Wallet auf dem Sperrbildschirm zu aktivieren oder zu deaktivieren

Abbildung 5: Die Option „Brieftasche“ wird in den Einstellungen auf der Seite „Sperrbildschirm“ angezeigt.

Einstellungen in Android 11

Nutzer können die Funktion „Brieftasche für schnellen Zugriff“ in den Einstellungen deaktivieren. Die Seite „Einstellungen“ finden Sie unter Einstellungen > System > Gesten > Karten und Tickets.

Einstellungsseite zum Aktivieren oder Deaktivieren der Wallet-Funktion „Schnellzugriff“
Abbildung 6: Auf der Seite „Einstellungen“ können Sie die Funktion „Schnellzugriff auf Wallet“ aktivieren oder deaktivieren.

Personalisierung

Wallet-Ansicht für den Schnellzugriff an anderer Stelle in der System-UI hinzufügen

Die Wallet-UI für den Schnellzugriff ist als System-Plug-in erstellt. In der AOSP-Implementierung wird sie zwar in GlobalActionsDialog verwendet (wird bei langem Drücken der Ein-/Aus-Taste angezeigt), Sie können die Funktion aber auch mit einer anderen Geste verknüpfen, solange Sie die von der Plug-in-Benutzeroberfläche angegebene Vereinbarung einhalten.

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

Die Benutzeroberfläche für den Schnellzugriff auf Karten implementiert GlobalActionsPanelPlugin und PanelViewController. GlobalActionsDialog ruft eine Instanz des Wallet-Plug-ins mit com.android.systemui.Dependency ab:

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

Nachdem geprüft wurde, ob das Plug-in nicht null ist und das von onPanelShown zurückgegebene PanelViewController nicht null ist, hängt das Dialogfeld das von getPanelContent bereitgestellte View an sein eigenes View an und stellt entsprechende Callbacks für Systemereignisse bereit.

// 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();

Wenn Sie das Wallet für den Schnellzugriff aus dem Ein-/Aus-Menü entfernen möchten, lassen Sie das Ziel QuickAccessWallet aus dem Systembuild weg. Wenn Sie die Wallet für den Schnellzugriff aus dem Ein-/Aus-Menü entfernen, sie aber einer anderen Ansicht der System-UI hinzufügen möchten, fügen Sie das Build-Ziel ein und entfernen Sie Verweise auf die GlobalActionsPanelPlugin aus GlobalActionsImpl.

Standardkonfigurationen festlegen

Android 12

Unter Android 12 oder höher ist die Wallet für den Schnellzugriff immer in den Schnelleinstellungen zu sehen. Die Sichtbarkeit der Wallet für den Schnellzugriff auf dem Sperrbildschirm wird durch die folgende Sicherheitseinstellung eingeschränkt: LOCKSCREEN_SHOW_WALLET. Mit dieser Einstellung wird festgelegt, ob das Wallet-Symbol für den schnellen Zugriff unten rechts auf dem Sperrbildschirm angezeigt wird. Diese Einstellung ist standardmäßig auf true gesetzt, kann aber vom Nutzer unter Einstellungen > Display > Sperrbildschirm > Wallet anzeigen deaktiviert werden.

Android 11

Unter Android 11 wird die Sichtbarkeit von Wallet für den schnellen Zugriff durch zwei sichere Einstellungen gesteuert: GLOBAL_ACTIONS_PANEL_ENABLED und GLOBAL_ACTIONS_PANEL_AVAILABLE. Mit der Einstellung AVAILABLE wird festgelegt, ob die Funktion in den Einstellungen aktiviert und deaktiviert werden kann. Diese Einstellung wird von WalletPluginService auf true festgelegt. Wenn QuickAccessWallet nicht im Build enthalten ist, bleibt die Einstellung false. Die Einstellung ENABLED ist standardmäßig an derselben Stelle auf true gesetzt, kann jedoch vom Nutzer in den Einstellungen deaktiviert werden. Wenn Sie das Standardverhalten ändern möchten, ändern Sie WalletPluginService#enableFeatureInSettings.

Zertifizierungsstufe

Führen Sie CTS- und manuelle Tests durch, um die Implementierung der Schnellzugriffs-Brieftasche zu validieren. Änderungen am Plug-in sollten auch die enthaltenen Robolectric-Tests ausführen.

CTS-Tests

Führen Sie die CTS-Tests unter cts/tests/quickaccesswallet aus.

Manuelle Tests für Android 12

Zum Testen der Hauptfunktionen der Quick Access Wallet-App ist ein NFC-Zahlungsterminal (echt oder gefälscht) und eine NFC-Zahlungs-App erforderlich, die QuickAccessWalletService (Wallet-App) implementiert. Zu den wichtigsten Funktionen, die getestet werden müssen, gehören Verfügbarkeit, Nullzustand, Kartenauswahl und Sperrbildschirmverhalten.

Verfügbarkeit

  • Wenn die Standard-NFC-Zahlungs-App die Funktion nicht unterstützt, ist die Wallet für den schnellen Zugriff weder in den Schnelleinstellungen noch auf dem Sperrbildschirm verfügbar.
  • Wenn die Standard-NFC-Zahlungs-App die Funktion unterstützt, ist die Brieftasche für den schnellen Zugriff in den Schnelleinstellungen verfügbar.
  • Wenn die Standard-NFC-Zahlungs-App diese Funktion unterstützt und die Einstellung LOCKSCREEN_SHOW_WALLET auf true gesetzt ist, ist das Schnellzugriff-Wallet über den Sperrbildschirm zugänglich.
  • Wenn die Standard-NFC-Zahlungs-App die Funktion unterstützt und die Einstellung für LOCKSCREEN_SHOW_WALLET false ist, ist die Wallet für den schnellen Zugriff nicht auf dem Sperrbildschirm verfügbar.

Nullzustand

  • Wenn QuickAccessWalletService aktiviert und exportiert wird, aber keine Karten enthält, wird die Kachel im Schatten wie im Beispiel in Abbildung 7 angezeigt. Durch Klicken auf die Kachel wird die Standard-App für NFC-Zahlungen geöffnet.

    Beispielkachel in der Leiste, die die Standard-NFC-Zahlungs-App zeigt

    Abbildung 7. Beispielkachel im Schieberegler mit der Standard-App für NFC-Zahlungen

  • Wenn Sie auf die Ansicht im leeren Zustand klicken (siehe Abbildung 8), wird die Standard-NFC-Zahlungs-App geöffnet. Diese Ansicht wird nur angezeigt, wenn der Nutzer nur noch eine Karte in der Brieftasche hat, die Karte von der Seite mit den Kartendetails entfernt und dann zur Brieftaschenansicht zurückkehrt.

  • Auf dem Sperrbildschirm wird das Wallet-Symbol angezeigt.

Ansicht für leeren Status in der Wallet für den Schnellzugriff

Abbildung 8. Leere Ansicht in der Wallet-Benutzeroberfläche für den Schnellzugriff.

Status ungleich null

  • Wenn die Wallet-App eine oder mehrere Karten bereitstellt, wird die Kachel in der Leiste wie in Abbildung 9 dargestellt.

    Beispiel für eine Kachel im abgeblendeten Zustand, wenn die Wallet App eine oder mehrere Karten enthält

    Abbildung 9. Beispiel für eine Kachel im Schatten, wenn die Wallet App eine oder mehrere Karten enthält

  • Durch Klicken auf die Kachel wird ein Kartenkarussell angezeigt.

  • Auf dem Sperrbildschirm wird eine Schaltfläche angezeigt, mit der die Wallet für den Schnellzugriff geöffnet wird.

    Benutzeroberfläche für den Schnellzugriff auf die Wallet mit einer angezeigten Karte

    Abbildung 10. Benutzeroberfläche für den Schnellzugriff auf Wallet mit einer angezeigten Karte

  • Wenn die angezeigte Karte eine NFC-Zahlungsmethode darstellt, wird die Zahlungsmethode verwendet und die Wallet-Ansicht geschlossen, wenn Sie das Smartphone an ein NFC-Zahlungsterminal halten.

  • Wenn Sie auf eine angezeigte Karte klicken, wird die detaillierte Aktivität für diese Karte geöffnet.

  • Wenn QuickAccessWalletService mehrere Karten zur Verfügung stellt, kann der Nutzer zwischen den Karten wischen.

  • Das Dreipunkt-Menü enthält einen Eintrag: Öffnen Sie die Einstellungen für den Sperrbildschirm, damit der Nutzer die Option Brieftasche anzeigen ändern kann.

Tests für den Schlossstatus

  • Wenn das Smartphone gesperrt ist, wird die Brieftasche in der Leiste für die Schnelleinstellungen angezeigt. Sie enthält die Beschreibung Karte hinzufügen, wenn in der Standard-Zahlungs-App keine Karte vorhanden ist, oder zum Verwenden entsperren, wenn in der Standard-Zahlungs-App Karten vorhanden sind.
  • Wenn das Smartphone gesperrt ist, wird die Sichtbarkeit von Google Wallet auf dem Sperrbildschirm über die Einstellung Secure.LOCKSCREEN_SHOW_WALLET gesteuert, die in den Einstellungen festgelegt wird.
  • Wenn das Smartphone gesperrt ist, LOCKSCREEN_SHOW_WALLET = false und in der Standard-NFC-Zahlungs-App keine Karte vorhanden ist, wird das Wallet nicht auf dem Sperrbildschirm angezeigt.
  • Wenn das Smartphone gesperrt ist, LOCKSCREEN_SHOW_WALLET = true und in der Standard-NFC-Zahlungs-App keine Karte vorhanden ist, wird das Wallet nicht auf dem Sperrbildschirm angezeigt.
  • Wenn das Smartphone gesperrt ist, LOCKSCREEN_SHOW_WALLET = true und in der Standard-App für NFC-Zahlungen Karten vorhanden sind, wird das Wallet auf dem Sperrbildschirm angezeigt.
  • Wenn Sie das Smartphone entsperren, während die Brieftasche auf dem Sperrbildschirm angezeigt wird, werden die Karten noch einmal angefordert. Dies kann zu unterschiedlichen Karteninhalten führen.

Tests zur Barrierefreiheit

  • TalkBack-Nutzer können in der Wallet-Ansicht navigieren, indem sie nach links und rechts wischen und sich die Inhaltsbeschreibungen der Karten anhören.
  • Wenn Sie bei aktiviertem Talkback nach links oder rechts wischen, werden die einzelnen Karten nacheinander ausgewählt. TalkBack-Nutzer können an einem NFC-Zahlungsterminal eine NFC-Zahlungsmethode auswählen und verwenden.

Manuelle Tests für Android 11

Zum Testen der Hauptfunktionen der Quick Access Wallet-App ist ein NFC-Zahlungsterminal (echt oder gefälscht) und eine NFC-Zahlungs-App erforderlich, die QuickAccessWalletService (Wallet-App) implementiert. Zu den wichtigsten Funktionen, die getestet werden müssen, gehören Verfügbarkeit, Zero-Status, Kartenauswahl und Sperrbildschirmverhalten.

Verfügbarkeit

  • Wenn die Einstellung für GLOBAL_ACTIONS_PANEL_ENABLED true ist und die standardmäßige NFC-Zahlungs-App die Funktion unterstützt, ist der Schnellzugriff auf die Brieftasche verfügbar.
  • Wenn die Einstellung GLOBAL_ACTIONS_PANEL_ENABLED auf false gesetzt ist und die Standard-NFC-Zahlungs-App diese Funktion unterstützt, ist das Schnellzugriff-Wallet nicht zugänglich.
  • Wenn die Einstellung GLOBAL_ACTIONS_PANEL_ENABLED auf true gesetzt ist und die Standard-NFC-Zahlungs-App diese Funktion nicht unterstützt, ist der Zugriff auf die Brieftasche für den Schnellzugriff nicht möglich.
  • Wenn die Einstellung GLOBAL_ACTIONS_PANEL_ENABLED auf false gesetzt ist und die Standard-NFC-Zahlungs-App diese Funktion nicht unterstützt, ist der Zugriff auf die Brieftasche für den Schnellzugriff nicht möglich.

Nullzustand

  • Wenn QuickAccessWalletService aktiviert und exportiert, aber keine Karten enthält, wird in der Wallet-Benutzeroberfläche für den Schnellzugriff der leere Status angezeigt.
  • Wenn Sie auf die Ansicht mit leerem Status klicken, wird die Wallet App geöffnet.

    Ansicht des leeren Zustands in der Benutzeroberfläche für den Schnellzugriff auf Wallet
    Abbildung 11. Ansicht für leeren Status in der Benutzeroberfläche für den Schnellzugriff auf Wallet

Nicht null

  • Wenn die Wallet-App eine oder mehrere Karten bereitstellt, werden die Karten in der Wallet-UI für den Schnellzugriff angezeigt.

    Schnellzugriff auf Wallet-Benutzeroberfläche mit einer Karte
    Abbildung 12. Benutzeroberfläche für den Schnellzugriff auf Wallet mit einer angezeigten Karte
  • Wenn die angezeigte Karte eine NFC-Zahlungsmethode darstellt, führt das Halten des Smartphones an ein NFC-Zahlungsterminal dazu, dass diese Zahlungsmethode verwendet und die Brieftaschenansicht geschlossen wird.

  • Wenn Sie auf eine angezeigte Karte klicken, wird die Wallet-Ansicht geschlossen und die detaillierten Aktivitäten für diese Karte werden geöffnet.

  • Wenn QuickAccessWalletService mehrere Karten zur Verfügung stellt, kann der Nutzer zwischen den Karten wischen.

  • Das Dreipunkt-Menü enthält zwei Einträge: einen, über den die Wallet App geöffnet wird, und einen, über den der Bildschirm Karten und Karten/Tickets anzeigen in den Einstellungen geöffnet wird.

Tests für den Schlossstatus

  • Wenn das Smartphone gesperrt ist, wird die Sichtbarkeit des Wallets durch die Einstellung Settings.Secure.POWER_MENU_LOCK_SHOW_CONTENT gesteuert, die in den Einstellungen angepasst werden kann.
  • Wenn das Smartphone gesperrt ist und POWER_MENU_LOCK_SHOW_CONTENT = false ist, wird die Brieftasche nicht angezeigt.
  • Wenn das Smartphone gesperrt ist und POWER_MENU_LOCK_SHOW_CONTENT auf true steht, wird die Brieftasche angezeigt.
  • Wenn Sie das Smartphone entsperren, während die Brieftasche auf dem Sperrbildschirm angezeigt wird, werden die Karten noch einmal abgefragt. Dies kann zu unterschiedlichen Karteninhalten führen.

Tests zur Barrierefreiheit

  • TalkBack-Nutzer können durch Wischen nach links und rechts und durch Hören der Inhaltsbeschreibungen der Karten durch die Wallet-Ansicht navigieren.
  • Wenn Sie bei aktiviertem TalkBack nach links und rechts wischen, werden die Karten der Reihe nach ausgewählt. TalkBack-Nutzer können an einem NFC-Zahlungsterminal eine NFC-Zahlungsmethode auswählen und verwenden.