Schnellzugriff auf Karten

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

In Android 12 oder höher ist die Funktion „Schnellzugriff auf Karten“ über die Benachrichtigungsleiste verfügbar, wie in Abbildung 1 und Abbildung 2 dargestellt.

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

In Android 11 ist die Funktion über das Ein/Aus-Menü verfügbar, wie in Abbildung 3 dargestellt.

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

Voraussetzungen

Ihr Gerät muss NFC haben, um die Funktion „Schnellzugriff auf Karten“ verwenden zu können. Die Funktion ist an QuickAccessWalletService der Standard-App für NFC-Zahlungen gebunden. Das bedeutet das Gerät muss auch NFC hostbasierte Kartenemulation (Host-based Card Emulation, HCE)unterstützen.

Funktionsübersicht

Die Funktion „Schnellzugriff auf Karten“ besteht aus zwei Teilen: der Benutzeroberfläche für den Schnellzugriff auf Karten und dem Kartenanbieter für den Schnellzugriff auf Karten.

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

Der Kartenanbieter für den Schnellzugriff auf Karten ist die Standard-App für NFC-Zahlungen. Nutzer können mehrere Apps für NFC-Zahlungen gleichzeitig installiert haben, aber nur die Standard-App für NFC-Zahlungen kann Karten im Ein/Aus-Menü anzeigen. Sie können angeben, welche App für NFC-Zahlungen anfänglich als Standard-App festgelegt wird. Nutzer können aber in den Einstellungen eine andere App auswählen. Wenn nur eine App für NFC-Zahlungen installiert ist, wird sie automatisch zur Standard-App (siehe CardEmulationManager).

Implementierung

Um Karten für die Benutzeroberfläche für den Schnellzugriff auf Karten bereitzustellen, müssen Apps für NFC-Zahlungen implementieren QuickAccessWalletService. Zahlungs-Apps müssen einen Manifesteintrag enthalten, der den Dienst bewirbt.

Damit nur die System-UI eine Bindung an QuickAccessWalletService vornehmen kann, muss die App für NFC-Zahlungen die Berechtigung android.permission.BIND_QUICK_ACCESS_WALLET_SERVICE erfordern. Durch diese Berechtigung wird sichergestellt, dass nur die System-UI eine Bindung an QuickAccessWalletService vornehmen kann.

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

Weitere Informationen zur digitalen Geldbörse finden Sie in der verlinkten XML-Datei:

<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 eine NFC-Transaktion verarbeitet und infolgedessen eine Aktivität startet, um den Fortschritt und das Ergebnis der Zahlung anzuzeigen, sollte auch versucht werden, eine Referenz auf den gebundenen QuickAccessWalletService abzurufen und QuickAccessWalletService#sendEvent mit dem Ereignistyp TYPE_NFC_PAYMENT_STARTED aufzurufen. Dadurch wird die Benutzeroberfläche für den Schnellzugriff auf Karten geschlossen, sodass der Nutzer die Zahlungsaktivität ohne Einschränkungen sehen kann.

Weitere Informationen zur Implementierung von QuickAccessWalletService finden Sie unter QuickAccessWalletService und im TestQuickAccessWalletService CTS-Test.

Benutzeroberfläche für den Schnellzugriff auf Karten in Android 11 aktivieren

Wenn Sie den Schnellzugriff auf Karten über das Ein/Aus-Menü in Android 11 verfügbar machen möchten, fügen Sie das QuickAccessWallet Ziel in den Build ein und aktivieren Sie das globalactions.wallet Plug-in, indem Sie die fett gedruckte Zeile im folgenden Codebeispiel in die overlay/frameworks/base/packages/SystemUI/res/values/config.xml Datei einfü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 die Standard-App für NFC-Zahlungen in der Konfigurationsdatei für die Einstellungen mit def_nfc_payment_component an.

Die Standard-App für NFC-Zahlungen muss QuickAccessWalletService verfügbar machen, um Karten für den Schnellzugriff auf Karten bereitzustellen. Wenn die Standard-App für NFC-Zahlungen diesen Dienst nicht exportiert, wird die Benutzeroberfläche für Karten ausgeblendet.

Implementierungsdetails für QuickAccessWalletService

QuickAccessWalletService hat drei abstrakte Methoden, die implementiert werden müssen: onWalletCardsRequested, onWalletCardSelected und onWalletDismissed. Das folgende Sequenzdiagramm veranschaulicht eine Aufrufsequenz, wenn der Schnellzugriff auf Karten unmittelbar vor einer NFC-Zahlung aufgerufen wird.

Sequenzdiagramm für den Schnellzugriff auf Karten

Beispiel für eine Anrufsequenz, wenn der Schnellzugriff auf Karten aufgerufen wird
Abbildung 4. Beispiel für eine Aufrufsequenz, wenn der Schnellzugriff auf Karten aufgerufen wird. aufgerufen wird.

Nicht alle Aufrufe des Schnellzugriffs auf Karten werden von einer NFC-Zahlung gefolgt, aber Abbildung 4 oben veranschaulicht alle Funktionen von QuickAccessWalletService. In diesem Beispiel implementiert der Kartenanbieter für den Schnellzugriff auf Karten die blau umrandeten Elemente. Es wird davon ausgegangen, dass Zahlungskarten in einer Datenbank auf dem Gerät gespeichert sind und über eine Schnittstelle namens PaymentCardManager aufgerufen werden. Außerdem wird davon ausgegangen, dass eine Aktivität namens PaymentActivity das Ergebnis einer NFC-Zahlung anzeigt. Der Ablauf ist wie folgt:

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

    • Wenn der Dienst nicht exportiert wird, wird der Schnellzugriff auf Karten nicht angezeigt.
  3. Die Benutzeroberfläche für den Schnellzugriff auf Karten stellt eine Bindung zu QuickAccessWalletService her und ruft onWalletCardsRequested auf. Diese Methode verwendet ein Anfrageobjekt mit Daten zur Anzahl und Größe der Karten, die bereitgestellt werden können, und einen Callback. Der Callback kann über einen Hintergrundthread aufgerufen werden.

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

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

    • onWalletCardSelected wird jedes Mal aufgerufen, wenn der Nutzer eine neue Karte auswählt.
    • onWalletCardSelected kann auch aufgerufen werden, wenn die aktuell ausgewählte Karte nicht geändert wurde.
  6. Wenn der Nutzer den Schnellzugriff auf Karten schließt, benachrichtigt die System-UI QuickAccessWalletService, indem sie onWalletDismissed aufruft.

Im obigen Beispiel hält der Nutzer das Smartphone in die Nähe eines NFC-Zahlungsterminals, während die digitale Geldbörse angezeigt wird. Eine wichtige Komponente für die Verarbeitung von NFC Zahlungen ist HostApduService, die implementiert werden muss, um von Lesegeräten für NFC 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 für den Schnellzugriff auf Karten wird jedoch über dem App-Fenster angezeigt, sodass die Zahlungsaktivität durch die Benutzeroberfläche für den Schnellzugriff auf Karten verdeckt wird. Um dies zu beheben, muss die App die System-UI benachrichtigen, dass die Benutzeroberfläche für den Schnellzugriff auf Karten geschlossen werden soll. Dazu kann sie eine Referenz auf den gebundenen 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 QuickAccessWalletService API-Referenz.

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 Signatur-Ebene, die von der System-UI gehalten wird. Das bedeutet, dass nur der System-UI-Prozess eine Bindung an Implementierungen von QuickAccessWalletService vornehmen kann. Beachten Sie, dass per Sideloading installierte Apps diese Berechtigung beanspruchen und vollen Zugriff auf QuickAccessWalletService-Daten auf Geräten mit Android 10 oder niedriger 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. Über die für die Bereitstellung von Host Card Emulation-Zahlungsdiensten erforderlichen App-Berechtigungen hinaus sind keine weiteren App-Berechtigungen erforderlich.

Wenn die Standard-App für NFC-Zahlungen QuickAccessWalletService nicht implementiert oder exportiert, wird die Benutzeroberfläche für den Schnellzugriff auf Karten nicht angezeigt.

Einstellungen in Android 12

Wenn Nutzer den Schnellzugriff auf Karten über den Sperrbildschirm aktivieren oder deaktivieren möchten, können sie in den Einstellungen > Display > Sperrbildschirm die Option Wallet anzeigen verwenden. Wenn Nutzer die digitale Geldbörse in der Benachrichtigungsleiste deaktivieren möchten, müssen sie sie manuell in der Benachrichtigungsleiste für die Schnelleinstellungen bearbeiten.

Aktivieren oder deaktivieren Sie den Zugriff auf Wallet über den Sperrbildschirm.

Abbildung 5. Option „Wallet anzeigen“ auf der Seite „Sperrbildschirm“ in den Einstellungen.

Einstellungen in Android 11

Nutzer können die Funktion „Schnellzugriff auf Karten“ in der App „Einstellungen“ deaktivieren. Die Einstellungsseite finden Sie unter Einstellungen > System > Gesten > Karten und Tickets.

Einstellungsseite zum Aktivieren oder Deaktivieren der Funktion „Schnellzugriff auf Wallet“
Abbildung 6. Einstellungsseite zum Aktivieren oder Deaktivieren der Funktion „Schnellzugriff auf Karten“.

Anpassung

Ansicht für den Schnellzugriff auf Karten an einer anderen Stelle in der System-UI hinzufügen

Die Benutzeroberfläche für den Schnellzugriff auf Karten ist als System-Plug-inkonzipiert. Obwohl die AOSP-Implementierung sie in GlobalActionsDialog verwendet (wird bei langem Drücken der Ein/Aus-Taste angezeigt), können Sie die Funktion hinter einer anderen Geste platzieren, solange Sie den durch die Plug-in-Schnittstelle angegebenen Vertrag 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 und der PanelViewController von onPanelShown zurückgegebene nicht null sind, fügt das Dialogfeld die von getPanelContent bereitgestellte View an seine eigene 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 den Schnellzugriff auf Karten aus dem Ein/Aus-Menü entfernen möchten, lassen Sie das Ziel QuickAccessWallet im System-Build weg. Wenn Sie den Schnellzugriff auf Karten aus dem Ein/Aus-Menü entfernen, ihn 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

In Android 12 oder höher ist der Schnellzugriff auf Karten immer in der Benachrichtigungsleiste für die Schnelleinstellungen sichtbar. Die Sichtbarkeit des Schnellzugriffs auf Karten auf dem Sperrbildschirm wird durch die folgende sichere Einstellung gesteuert: LOCKSCREEN_SHOW_WALLET. Mit dieser Einstellung wird festgelegt, ob das Symbol für den Schnellzugriff auf Karten 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

In Android 11 wird die Sichtbarkeit des Schnellzugriffs auf Karten 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 gesetzt. Wenn QuickAccessWallet nicht im Build enthalten ist, bleibt die Einstellung false. Die Einstellung ENABLED ist standardmäßig an derselben Stelle auf true gesetzt, kann aber vom Nutzer in den Einstellungen deaktiviert werden. Wenn Sie das Standardverhalten ändern möchten, ändern Sie WalletPluginService#enableFeatureInSettings.

Validierung

Um Ihre Implementierung des Schnellzugriffs auf Karten zu validieren, führen Sie CTS- und manuelle Tests aus. Ä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

Für das Testen der Kernfunktionen des Schnellzugriffs auf Karten sind ein NFC-Zahlungsterminal (echt oder gefälscht) und eine App für NFC-Zahlungen erforderlich, die QuickAccessWalletService implementiert (Wallet-App). Zu den Kernfunktionen, die getestet werden müssen, gehören Verfügbarkeit, Nullstatus, Kartenauswahl und Verhalten des Sperrbildschirms.

Verfügbarkeit

  • Wenn die Standard-App für NFC-Zahlungen die Funktion nicht unterstützt, ist der Schnellzugriff auf Karten weder in den Schnelleinstellungen noch auf dem Sperrbildschirm verfügbar.
  • Wenn die Standard-App für NFC-Zahlungen die Funktion unterstützt, ist der Schnellzugriff auf Karten in der Benachrichtigungsleiste für die Schnelleinstellungen verfügbar.
  • Wenn die Standard-App für NFC-Zahlungen die Funktion unterstützt und die Einstellung LOCKSCREEN_SHOW_WALLET auf true gesetzt ist, ist der Schnellzugriff auf Karten auf dem Sperrbildschirm verfügbar.
  • Wenn die Standard-App für NFC-Zahlungen die Funktion unterstützt und die Einstellung LOCKSCREEN_SHOW_WALLET auf false gesetzt ist, ist der Schnellzugriff auf Karten auf dem Sperrbildschirm nicht verfügbar.

Nullstatus

  • Wenn QuickAccessWalletService aktiviert und exportiert ist, aber keine Karten bereitstellt, wird die Kachel in der Benachrichtigungsleiste wie im Beispiel in Abbildung 7 angezeigt. Wenn Sie auf die Kachel klicken, wird die Standard-App für NFC-Zahlungen geöffnet.

    Beispielkachel in der Benachrichtigungsleiste mit der Standard-App für NFC-Zahlungen

    Abbildung 7. Beispiel für eine Kachel in der Benachrichtigungsleiste, die die Standard-App für NFC-Zahlungen zeigt.

  • Wenn Sie auf die Ansicht des leeren Status klicken, wie in Abbildung 8 dargestellt, wird die Standard-App für NFC-Zahlungen geöffnet. Diese Ansicht des leeren Status wird nur angezeigt, wenn der Nutzer noch eine Karte in der digitalen Geldbörse hat, die Karte auf der Seite mit den Kartendetails entfernt und dann zur Ansicht der digitalen Geldbörse zurückkehrt.

  • Auf dem Sperrbildschirm wird das Symbol für die digitale Geldbörse angezeigt.

Ansicht des leeren Status im Schnellzugriff auf Wallet

Abbildung 8. Ansicht des leeren Status in der Benutzeroberfläche für den Schnellzugriff auf Karten.

Status ungleich null

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

    Beispielkachel im Schatten, wenn die Wallet App eine oder mehrere Karten enthält

    Abbildung 9. Beispiel für eine Kachel in der Benachrichtigungsleiste, wenn die Wallet-App eine oder mehrere Karten enthält.

  • Wenn Sie auf die Kachel klicken, wird ein Kartenkarussell angezeigt.

  • Auf dem Sperrbildschirm wird eine Schaltfläche angezeigt, mit der der Schnellzugriff auf Karten geöffnet wird.

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

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

  • Wenn die angezeigte Karte eine NFC-Zahlungsmethode darstellt, wird diese Zahlungsmethode verwendet, wenn das Smartphone an ein NFC-Zahlungsterminal gehalten wird, und die Ansicht der digitalen Geldbörse wird geschlossen.

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

  • Wenn mehrere Karten von QuickAccessWalletService bereitgestellt werden, kann der Nutzer zwischen den Karten wischen.

  • Das Überlaufmenü enthält einen Eintrag: Öffnen Sie die Einstellungen für den Sperrbildschirm, damit der Nutzer die Option Wallet anzeigen ändern kann.

Tests des Sperrstatus

  • Wenn das Smartphone gesperrt ist, ist die digitale Geldbörse in der Benachrichtigungsleiste für die Schnelleinstellungen sichtbar. Wenn in der Standard-App für Zahlungen keine Karte vorhanden ist, wird die Beschreibung Karte hinzufügen angezeigt. Wenn Karten in der Standard-App für Zahlungen vorhanden sind, wird Zum Verwenden entsperren angezeigt.
  • Wenn das Smartphone gesperrt ist, wird die Sichtbarkeit der digitalen Geldbörse auf dem Sperrbildschirm durch die Einstellung Secure.LOCKSCREEN_SHOW_WALLET gesteuert, die in den Einstellungen konfiguriert wird.
  • Wenn das Smartphone gesperrt ist, LOCKSCREEN_SHOW_WALLET auf false gesetzt ist und in der Standard-App für NFC-Zahlungen keine Karte vorhanden ist, wird die digitale Geldbörse nicht auf dem Sperrbildschirm angezeigt.
  • Wenn das Smartphone gesperrt ist, LOCKSCREEN_SHOW_WALLET auf true gesetzt ist und in der Standard-App für NFC-Zahlungen keine Karte vorhanden ist, wird die digitale Geldbörse nicht auf dem Sperrbildschirm angezeigt.
  • Wenn das Smartphone gesperrt ist, LOCKSCREEN_SHOW_WALLET auf true gesetzt ist und in der Standard-App für NFC-Zahlungen Karten vorhanden sind, wird die digitale Geldbörse auf dem Sperrbildschirm angezeigt.
  • Wenn Sie das Smartphone entsperren, während die digitale Geldbörse auf dem Sperrbildschirm angezeigt wird, werden die Karten neu angefordert. Dies kann zu anderen Karteninhalten führen.

Tests der Bedienungshilfen

  • TalkBack-Nutzer können in der Ansicht der digitalen Geldbörse navigieren, indem sie nach links und rechts wischen und sich die Inhaltsbeschreibungen der Karten anhören.
  • Wenn TalkBack aktiviert ist, wird durch Wischen nach links und rechts jeweils eine Karte ausgewählt. TalkBack-Nutzer können eine NFC-Zahlungsmethode an einem NFC-Zahlungsterminal auswählen und verwenden.

Manuelle Tests für Android 11

Für das Testen der Kernfunktionen des Schnellzugriffs auf Karten sind ein NFC-Zahlungsterminal (echt oder gefälscht) und eine App für NFC-Zahlungen erforderlich, die QuickAccessWalletService implementiert (Wallet-App). Zu den Kernfunktionen, die getestet werden müssen, gehören Verfügbarkeit, Nullstatus, Kartenauswahl und Verhalten des Sperrbildschirms.

Verfügbarkeit

  • Wenn die Einstellung GLOBAL_ACTIONS_PANEL_ENABLED auf true gesetzt ist und die Standard-App für NFC-Zahlungen die Funktion unterstützt, ist der Schnellzugriff auf Karten verfügbar.
  • Wenn die Einstellung GLOBAL_ACTIONS_PANEL_ENABLED auf false gesetzt ist und die Standard App für NFC-Zahlungen die Funktion unterstützt, ist der Schnellzugriff auf Karten nicht verfügbar.
  • Wenn die Einstellung GLOBAL_ACTIONS_PANEL_ENABLED auf true gesetzt ist und die Standard-App für NFC-Zahlungen die Funktion nicht unterstützt, ist der Schnellzugriff auf Karten nicht verfügbar.
  • Wenn die GLOBAL_ACTIONS_PANEL_ENABLED Einstellung auf false gesetzt ist und die Standard App für NFC-Zahlungen die Funktion nicht unterstützt, ist der Schnellzugriff auf Karten nicht verfügbar.

Nullstatus

  • Wenn QuickAccessWalletService aktiviert und exportiert ist, aber keine Karten bereitstellt, wird in der Benutzeroberfläche für den Schnellzugriff auf Karten die Ansicht des leeren Status angezeigt.
  • Wenn Sie auf die Ansicht des leeren Status klicken, wird die Wallet-App geöffnet.

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

Status ungleich null

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

    Benutzeroberfläche für den Wallet-Schnellzugriff mit einer angezeigten Karte
    Abbildung 12. Benutzeroberfläche für den Schnellzugriff auf Karten mit einer angezeigten Karte angezeigt.
  • Wenn die angezeigte Karte eine NFC-Zahlungsmethode darstellt, wird diese Zahlungsmethode verwendet, wenn das Smartphone an ein NFC-Zahlungsterminal gehalten wird, und die Ansicht der digitalen Geldbörse wird geschlossen.

  • Wenn Sie auf eine angezeigte Karte klicken, wird die Ansicht der digitalen Geldbörse geschlossen und die detaillierte Aktivität für diese Karte geöffnet.

  • Wenn mehrere Karten von QuickAccessWalletService bereitgestellt werden, kann der Nutzer zwischen den Karten wischen.

  • Das Überlaufmenü enthält zwei Einträge: einen, mit dem die Wallet-App geöffnet wird, und einen, mit dem der Bildschirm Karten und Tickets anzeigen in den Einstellungen geöffnet wird.

Tests des Sperrstatus

  • Wenn das Smartphone gesperrt ist, wird die Sichtbarkeit der digitalen Geldbörse durch die Einstellung Settings.Secure.POWER_MENU_LOCK_SHOW_CONTENT gesteuert, die in den Einstellungen konfiguriert werden kann.
  • Wenn das Smartphone gesperrt ist und POWER_MENU_LOCK_SHOW_CONTENT auf false gesetzt ist, wird die digitale Geldbörse nicht angezeigt.
  • Wenn das Smartphone gesperrt ist und POWER_MENU_LOCK_SHOW_CONTENT auf true gesetzt ist, wird die digitale Geldbörse angezeigt.
  • Wenn Sie das Smartphone entsperren, während die digitale Geldbörse auf dem Sperrbildschirm angezeigt wird, werden die Karten neu angefordert. Dies kann zu anderen Karteninhalten führen.

Tests der Bedienungshilfen

  • TalkBack-Nutzer können in der Ansicht der digitalen Geldbörse navigieren, indem sie nach links und rechts wischen und sich die Inhaltsbeschreibungen der Karten anhören.
  • Wenn TalkBack aktiviert ist, wird durch Wischen nach links und rechts jeweils eine Karte ausgewählt. TalkBack-Nutzer können eine NFC-Zahlungsmethode an einem NFC-Zahlungsterminal auswählen und verwenden.