Schnellzugriff auf Karten

Mit der Funktion „Schneller Zugriff auf 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 geeigneten Zahlungsmethode vor einer Transaktion an einem NFC-Terminal und der schnelle Zugriff auf Flugtickets und andere Karten für anstehende Veranstaltungen.

Unter Android 12 oder höher ist die Funktion „Schnellzugriff auf Wallet“ über den Benachrichtigungsbereich verfügbar, wie in Abbildung 1 und Abbildung 2 dargestellt.

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

Unter Android 11 ist die Funktion über das Ein/Aus-Menü verfügbar (siehe Abbildung 3).

Schnellzugriff auf Wallet im Ein/Aus-Menü
Abbildung 3. Schnellzugriff auf Wallet im Ein/Aus-Menü.

Voraussetzungen

Ihr Gerät muss NFC unterstützen, damit Sie die Funktion „Schnellzugriff auf Wallet“ nutzen können. Die Funktion wird an QuickAccessWalletService der Standard-NFC-Zahlungs-App gebunden. Das bedeutet, dass das Gerät auch NFC-Host Card Emulation (HCE) unterstützen muss.

Funktionsübersicht

Der Schnellzugriff auf Wallet besteht aus zwei Teilen: der Benutzeroberfläche für den Schnellzugriff auf Wallet und dem Kartenanbieter für den Schnellzugriff auf Wallet.

In 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. Unter Android 11 muss die Wallet-Benutzeroberfläche, die sich unter platform/packages/apps/QuickAccessWallet befindet, installiert und auf der Zulassungsliste stehen.

Der Anbieter der Wallet-Karte für den Schnellzugriff ist die standardmäßige NFC-Zahlungs-App. Nutzer können mehrere NFC-Zahlungs-Apps gleichzeitig installiert haben, aber nur die standardmäßige NFC-Zahlungs-App kann Karten im Ein/Aus-Menü anzeigen. Sie können festlegen, welche NFC-Zahlungs-App anfangs als Standard festgelegt ist. Nutzer können jedoch in den Einstellungen eine andere App auswählen. Wenn nur eine NFC-Zahlungs-App installiert ist, wird sie automatisch zur Standard-App (siehe CardEmulationManager).

Implementierung

Wenn Sie Karten für die Benutzeroberfläche für den Wallet-Schnellzugriff bereitstellen möchten, müssen NFC-Zahlungs-Apps QuickAccessWalletService implementieren. Zahlungs-Apps müssen einen Manifesteintrag enthalten, der für den Dienst wirbt.

Damit nur die System-UI eine Bindung an QuickAccessWalletService vornehmen kann, muss für die NFC-Zahlungs-App die Berechtigung android.permission.BIND_QUICK_ACCESS_WALLET_SERVICE erforderlich sein. 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>

Die verknüpfte XML-Datei enthält zusätzliche Informationen zur 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 infolgedessen eine Aktivität startet, um den Fortschritt und das Ergebnis der Zahlung anzuzeigen, sollte auch versucht werden, eine Referenz zum gebundenen QuickAccessWalletService abzurufen und QuickAccessWalletService#sendEvent mit dem Ereignistyp TYPE_NFC_PAYMENT_STARTED aufzurufen. Dadurch wird die Benutzeroberfläche für den schnellen Zugriff auf Google Wallet geschlossen und der Nutzer kann die Zahlungsaktivität ungehindert sehen.

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

Schnellzugriff auf die Wallet-Benutzeroberfläche in Android 11 aktivieren

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

Die standardmäßige NFC-Zahlungs-App muss QuickAccessWalletService zur Verfügung stellen, um Karten für den Schnellzugriff auf Google Wallet bereitzustellen. Wenn die Standard-App für NFC-Zahlungen diesen Dienst nicht exportiert, wird die Wallet-Benutzeroberfläche ausgeblendet.

Implementierungsdetails für QuickAccessWalletService

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

Sequenzdiagramm für den Schnellzugriff auf Karten

Beispiel für eine Anrufsequenz, wenn der Schnellzugriff auf Wallet aufgerufen wird
Abbildung 4: Beispiel für eine Anruffolge, wenn auf die Wallet per Schnellzugriff zugegriffen wird.

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

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

    • Wenn der Dienst nicht exportiert wird, wird der Schnellzugriff auf Wallet nicht angezeigt.
  3. Die Benutzeroberfläche für den Schnellzugriff auf Wallet wird an QuickAccessWalletService gebunden und ruft onWalletCardsRequested auf. Diese Methode verwendet ein Anfrageobjekt mit Daten zur Anzahl und Größe der Karten, die bereitgestellt werden können, sowie 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 onWalletCardSelected aufgerufen wird.

    • onWalletCardSelected wird jedes Mal aufgerufen, wenn der Nutzer eine neue Karte auswählt.
    • onWalletCardSelected wird möglicherweise aufgerufen, auch wenn sich die aktuell ausgewählte Karte nicht geändert hat.
  6. Wenn der Nutzer die Wallet-Schnellzugriffsfunktion schließt, benachrichtigt die System-UI QuickAccessWalletService durch Aufrufen von onWalletDismissed.

Im obigen Beispiel hält der Nutzer das Smartphone in die Nähe 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 APDUs zu verarbeiten, die vom NFC-Lesegerät bereitgestellt werden. Weitere Informationen finden Sie unter Host-based card emulation. 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 Google Wallet wird jedoch über dem App-Fenster angezeigt, sodass die Zahlungsaktivität durch die Benutzeroberfläche für den Schnellzugriff auf Google Wallet verdeckt wird. Um dies zu beheben, muss die App die System-UI darüber informieren, dass die Wallet-UI für den Schnellzugriff geschlossen werden soll. Dazu ruft sie eine Referenz auf die gebundene QuickAccessWalletService ab und ruft sendWalletServiceEvent mit dem Ereignistyp TYPE_NFC_PAYMENT_STARTED auf.

Beispielimplementierung von 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 Signaturlaufwerksebene, 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 Sideloading installierte Apps diese Berechtigung anfordern 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. Es sind keine weiteren App-Berechtigungen erforderlich, die über die für die Bereitstellung von Zahlungsdiensten für die Host-Kartenemulation hinausgehen.

Wenn die standardmäßige NFC-Zahlungs-App QuickAccessWalletService nicht implementiert oder exportiert, wird die Benutzeroberfläche für den schnellen Zugriff auf Google Wallet nicht angezeigt.

Einstellungen in Android 12

Wenn Nutzer den Schnellzugriff auf die Wallet über den Sperrbildschirm aktivieren oder deaktivieren möchten, können sie in den Einstellungen > Display > Sperrbildschirm die Ein/Aus-Schaltfläche Wallet anzeigen verwenden. Wenn Nutzer die Wallet im Benachrichtigungsfeld deaktivieren möchten, müssen sie sie manuell im Bereich der Schnelleinstellungen bearbeiten.

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

Abbildung 5: Schaltfläche für die Wallet App auf der Seite „Sperrbildschirm“ in den Einstellungen anzeigen

Einstellungen in Android 11

Nutzer können die Funktion „Schnellzugriff auf Wallet“ in den Einstellungen deaktivieren. Die Einstellungsseite befindet sich 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 Wallet“.

Personalisierung

Wallet-Schnellzugriffsansicht an einer anderen Stelle in der System-UI hinzufügen

Die Wallet-Benutzeroberfläche für den Schnellzugriff ist als System-Plug-in konzipiert. Obwohl in der AOSP-Implementierung GlobalActionsDialog (wird bei langem Drücken des Ein/Aus-Schalters angezeigt) verwendet wird, können Sie die Funktion hinter einer anderen Geste platzieren, solange Sie den im Plug-in-Interface 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 Wallet implementiert GlobalActionsPanelPlugin und PanelViewController. Mit GlobalActionsDialog wird eine Instanz des Wallet-Plug-ins mit com.android.systemui.Dependency abgerufen:

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 ob der von onPanelShown zurückgegebene PanelViewController nicht null ist, hängt der Dialog 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 den Wallet-Schnellzugriff aus dem Ein/Aus-Menü entfernen möchten, lassen Sie das Ziel QuickAccessWallet im System-Build weg. Wenn Sie die Wallet-Schnellzugriffsfunktion aus dem Ein/Aus-Menü entfernen, sie aber in einer anderen von der System-UI bereitgestellten Ansicht hinzufügen möchten, fügen Sie das Build-Ziel ein und entfernen Sie Verweise auf GlobalActionsPanelPlugin aus GlobalActionsImpl.

Standardkonfigurationen festlegen

Android 12

Unter Android 12 oder höher ist die Wallet mit Schnellzugriff immer in den Schnelleinstellungen sichtbar. Die Sichtbarkeit des Schnellzugriffs auf Google Wallet auf dem Sperrbildschirm wird durch die folgende Sicherheitseinstellung gesteuert: LOCKSCREEN_SHOW_WALLET. Mit dieser Einstellung wird festgelegt, ob das Symbol für den Schnellzugriff auf Google Wallet unten rechts auf dem Sperrbildschirm angezeigt wird. Diese Einstellung ist standardmäßig auf true festgelegt, kann aber vom Nutzer unter Einstellungen > Display > Sperrbildschirm > Wallet anzeigen deaktiviert werden.

Android 11

In Android 11 wird die Sichtbarkeit von „Schnellzugriff auf Wallet“ durch zwei Sicherheitseinstellungen gesteuert: GLOBAL_ACTIONS_PANEL_ENABLED und GLOBAL_ACTIONS_PANEL_AVAILABLE. Mit der Einstellung AVAILABLE wird gesteuert, ob die Funktion in den Einstellungen aktiviert und deaktiviert werden kann. Diese Einstellung ist 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 festgelegt, kann aber vom Nutzer in den Einstellungen deaktiviert werden. Wenn Sie das Standardverhalten ändern möchten, bearbeiten Sie WalletPluginService#enableFeatureInSettings.

Zertifizierungsstufe

Führen Sie CTS- und manuelle Tests aus, um Ihre Implementierung der Funktion „Schnellzugriff auf die digitale Geldbörse“ zu validieren. Bei Änderungen am Plug-in sollten auch die enthaltenen Robolectric-Tests ausgeführt werden.

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 Google Wallet ist ein NFC-Zahlungsterminal (echt oder gefälscht) und eine NFC-Zahlungs-App erforderlich, in der QuickAccessWalletService (Wallet-App) implementiert ist. Zu den Kernfunktionen, die getestet werden müssen, gehören Verfügbarkeit, Nullstatus, Kartenauswahl und Verhalten auf dem Sperrbildschirm.

Verfügbarkeit

  • Wenn die Standard-App für NFC-Zahlungen die Funktion nicht unterstützt, ist die Wallet-Schnellzugriffsfunktion weder in den Schnelleinstellungen noch auf dem Sperrbildschirm verfügbar.
  • Wenn die standardmäßige NFC-Zahlungs-App die Funktion unterstützt, ist die Wallet-Schnellzugriffsfunktion in den 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, kann auf dem Sperrbildschirm auf die Funktion „Schnellzugriff auf Wallet“ zugegriffen werden.
  • Wenn die Standard-App für NFC-Zahlungen die Funktion unterstützt und die Einstellung LOCKSCREEN_SHOW_WALLET auf false festgelegt ist, kann auf dem Sperrbildschirm nicht auf die Funktion „Schnellzugriff auf Wallet“ zugegriffen werden.

Nullstatus

  • Wenn QuickAccessWalletService aktiviert und exportiert wird, aber keine Karten bereitstellt, wird die Kachel im Shade 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. Beispielkachel im Infobereich mit der Standard-App für NFC-Zahlungen

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

  • Auf dem Sperrbildschirm wird das Wallet-Symbol angezeigt.

Ansicht des leeren Status im Schnellzugriff auf Wallet

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

Status ungleich null

  • Wenn die Wallet App eine oder mehrere Karten bereitstellt, wird die Kachel im Shade wie in Abbildung 9 dargestellt angezeigt.

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

    Abbildung 9. Beispielkachel im Schatten, 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, über die der Wallet-Schnellzugriff geöffnet wird.

    Benutzeroberfläche für den Schnellzugriff auf 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 ist, wird diese Zahlungsmethode verwendet und die Wallet-Ansicht geschlossen, wenn das Smartphone an ein NFC-Zahlungsterminal gehalten wird.

  • Wenn Sie auf eine angezeigte Karte klicken, werden die detaillierten Aktivitäten für diese Karte geöffnet.

  • Wenn QuickAccessWalletService mehrere Karten bereitstellt, 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 Wallet anzeigen ändern kann.

Tests für den Schlossstatus

  • Wenn das Smartphone gesperrt ist, wird das Wallet in den Schnelleinstellungen angezeigt. Wenn in der Standardzahlungs-App keine Karte vorhanden ist, wird die Beschreibung Karte hinzufügen angezeigt. Wenn in der Standardzahlungs-App Karten vorhanden sind, wird die Beschreibung Zum Verwenden entsperren angezeigt.
  • Wenn das Smartphone gesperrt ist, wird die Sichtbarkeit der Wallet auf dem Sperrbildschirm durch 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-App für NFC-Zahlungen keine Karte vorhanden ist, wird die Wallet nicht auf dem Sperrbildschirm angezeigt.
  • Wenn das Smartphone gesperrt ist, LOCKSCREEN_SHOW_WALLET = true und in der Standard-App für NFC-Zahlungen keine Karte vorhanden ist, wird die Wallet nicht auf dem Sperrbildschirm angezeigt.
  • Wenn das Smartphone gesperrt ist, LOCKSCREEN_SHOW_WALLET = true und Karten in der Standard-App für NFC-Zahlungen vorhanden sind, wird die Wallet auf dem Sperrbildschirm angezeigt.
  • Wenn Sie das Smartphone entsperren, während die Wallet auf dem Sperrbildschirm angezeigt wird, werden die Karten neu angefordert. Dies kann dazu führen, dass andere Karteninhalte angezeigt werden.

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 TalkBack aktiviert ist, wird durch Wischen nach links und rechts jede Karte nacheinander ausgewählt. Talkback-Nutzer können an einem NFC-Zahlungsterminal eine NFC-Zahlungsmethode auswählen und verwenden.

Manuelle Tests für Android 11

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

Verfügbarkeit

  • Wenn die Einstellung GLOBAL_ACTIONS_PANEL_ENABLED auf true festgelegt ist und die standardmäßige NFC-Zahlungs-App die Funktion unterstützt, ist der Schnellzugriff auf Wallet verfügbar.
  • Wenn die Einstellung GLOBAL_ACTIONS_PANEL_ENABLED auf false gesetzt ist und die Standard-NFC-Zahlungs-App die Funktion unterstützt, ist der Schnellzugriff auf die Wallet nicht möglich.
  • Wenn die Einstellung GLOBAL_ACTIONS_PANEL_ENABLED auf true festgelegt ist und die Standard-NFC-Zahlungs-App die Funktion nicht unterstützt, ist die Funktion „Schnellzugriff auf Wallet“ nicht verfügbar.
  • Wenn die Einstellung GLOBAL_ACTIONS_PANEL_ENABLED auf false festgelegt ist und die Standard-NFC-Zahlungs-App die Funktion nicht unterstützt, ist die Funktion „Schnellzugriff auf Wallet“ nicht verfügbar.

Nullstatus

  • Wenn QuickAccessWalletService aktiviert und exportiert wird, aber keine Karten bereitstellt, wird in der Benutzeroberfläche für den Wallet-Schnellzugriff die Ansicht für den leeren Status angezeigt.
  • Durch Klicken auf die Ansicht des leeren Status 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.

Status ungleich null

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

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

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

  • Wenn QuickAccessWalletService mehrere Karten bereitstellt, kann der Nutzer zwischen den Karten wischen.

  • Das Dreipunkt-Menü enthält zwei Einträge: einen zum Öffnen der Wallet App und einen zum Öffnen des Bildschirms Karten und Tickets anzeigen in den Einstellungen.

Tests für den Schlossstatus

  • Wenn das Smartphone gesperrt ist, wird die Sichtbarkeit der Wallet 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 Wallet nicht angezeigt.
  • Wenn das Smartphone gesperrt ist und POWER_MENU_LOCK_SHOW_CONTENT true ist, wird die Wallet angezeigt.
  • Wenn Sie das Smartphone entsperren, während die Wallet auf dem Sperrbildschirm angezeigt wird, werden die Karten noch einmal abgerufen. Das kann dazu führen, dass andere Karteninhalte angezeigt werden.

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 TalkBack aktiviert ist, wird durch Wischen nach links und rechts jede Karte nacheinander ausgewählt. TalkBack-Nutzer können an einem NFC-Zahlungsterminal eine NFC-Zahlungsmethode auswählen und verwenden.