Schnellzugriffs-Wallet

Die Quick Access Wallet-Funktion, die ab Android 11 verfügbar ist, ermöglicht dem Benutzer den Zugriff auf Zahlungskarten und relevante Pässe direkt über das Power-Menü. Zu den wichtigsten Anwendungsfällen gehören die Auswahl der geeigneten Zahlungsmethode vor der Durchführung einer Transaktion an einem NFC-Terminal und der schnelle Zugriff auf Flüge und andere Pässe für bevorstehende Veranstaltungen.

In Android 12 oder höher ist die Quick Access Wallet-Funktion im Schatten verfügbar, wie in Abbildung 1 und Abbildung 2 dargestellt.

Quick Access Wallet-Funktion im Farbton
Abbildung 1. Quick Access Wallet-Funktion (Gerät gesperrt).
Quick Access Wallet-Funktion im Farbton
Abbildung 2. Quick Access Wallet-Funktion (Gerät entsperrt).

In Android 11 ist die Funktion über das Energiemenü verfügbar, wie in Abbildung 3 dargestellt.

Quick Access Wallet-Funktion im Power-Menü
Abbildung 3. Quick Access Wallet-Funktion im Power-Menü.

Anforderungen

Um die Quick Access Wallet-Funktion nutzen zu können, muss Ihr Gerät über NFC verfügen. Die Funktion bindet an QuickAccessWalletService der standardmäßigen NFC-Zahlungs-App, was bedeutet, dass das Gerät auch NFC Host-based Card Emulation (HCE) unterstützen muss.

Funktionsübersicht

Das Quick Access Wallet besteht aus zwei Teilen: der Quick Access Wallet-Benutzeroberfläche und dem Quick Access Wallet-Kartenanbieter.

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

Der Quick Access Wallet-Kartenanbieter ist die Standard-NFC-Zahlungs-App. Benutzer können mehrere NFC-Zahlungs-Apps gleichzeitig installieren, aber nur die Standard- NFC-Zahlungs-App kann Karten im Power-Menü anzeigen. Sie können festlegen, welche NFC-Zahlungs-App zunächst als Standard festgelegt wird, Benutzer können jedoch in den Einstellungen eine andere App auswählen. Wenn nur eine NFC-Zahlungs-App installiert ist, wird diese automatisch zum Standard (siehe CardEmulationManager ).

Implementierung

Um Karten für die Quick Access Wallet-Benutzeroberfläche bereitzustellen, müssen NFC-Zahlungs-Apps QuickAccessWalletService implementieren. Zahlungs-Apps müssen einen Manifesteintrag enthalten, der für den Dienst wirbt.

Um sicherzustellen, dass nur die System-Benutzeroberfläche eine Bindung zu QuickAccessWalletService herstellen kann, muss die NFC-Zahlungs-App die Berechtigung android.permission.BIND_QUICK_ACCESS_WALLET_SERVICE erfordern. Durch die Anforderung dieser Berechtigung wird sichergestellt, dass nur die System-Benutzeroberfläche eine Bindung an QuickAccessWalletService herstellen 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 zum Wallet sind in der verlinkten XML-Datei enthalten:

<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 es auch versuchen, einen Verweis auf den gebundenen QuickAccessWalletService abzurufen und QuickAccessWalletService#sendEvent mit dem Ereignistyp TYPE_NFC_PAYMENT_STARTED aufzurufen . Dadurch wird die Quick Access Wallet-Benutzeroberfläche geschlossen, sodass der Benutzer einen ungehinderten Blick auf die Zahlungsaktivität hat.

Weitere Dokumentation zur Implementierung QuickAccessWalletService finden Sie unter QuickAccessWalletService und dem TestQuickAccessWalletService CTS-Test.

Aktivieren der Quick Access Wallet-Benutzeroberfläche in Android 11

Um das Quick Access Wallet so zu konfigurieren, dass es über das Power-Menü in Android 11 verfügbar ist, schließen Sie das QuickAccessWallet Ziel in den Build ein und aktivieren Sie das Plugin globalactions.wallet , indem Sie die fett gedruckte Zeile im Codebeispiel unten zum overlay/frameworks/base/packages/SystemUI/res/values/config.xml -Datei.

<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-NFC-Zahlungs-App in der Einstellungskonfigurationsdatei mit def_nfc_payment_component an.

Die standardmäßige NFC-Zahlungs-App muss QuickAccessWalletService verfügbar machen, um Karten für das Quick Access Wallet bereitzustellen. Wenn die standardmäßige NFC-Zahlungs-App diesen Dienst nicht exportiert, wird die Wallet-Benutzeroberfläche ausgeblendet.

Details zur QuickAccessWalletService-Implementierung

QuickAccessWalletService verfügt über drei abstrakte Methoden, die implementiert werden müssen: onWalletCardsRequested , onWalletCardSelected und onWalletDismissed . Das folgende Sequenzdiagramm veranschaulicht eine Anrufsequenz, wenn das Quick Access Wallet unmittelbar vor einer NFC-Zahlung angezeigt wird.

Quick Access Wallet-Sequenzdiagramm

Beispiel-Anrufsequenz, wenn Quick Access Wallet angezeigt wird
Abbildung 4. Beispiel einer Anrufsequenz, wenn Quick Access Wallet angezeigt wird.

Nicht auf alle Ansichten des Quick Access Wallet folgt eine NFC-Zahlung, aber Abbildung 4 oben zeigt alle Funktionen von QuickAccessWalletService . In diesem Beispiel implementiert der Quick Access Wallet-Kartenanbieter 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 darauf zugegriffen wird. Es wird weiterhin davon ausgegangen, dass eine Aktivität namens PaymentActivity das Ergebnis einer NFC-Zahlung anzeigt. Der Ablauf läuft wie folgt ab:

  1. Der Benutzer führt eine Geste aus, um das Quick Access Wallet aufzurufen.
  2. Die Quick Access Wallet-Benutzeroberfläche (Teil der Systembenutzeroberfläche) überprüft den Paketmanager, um festzustellen, ob die standardmäßige NFC-Zahlungs-App QuickAccessWalletService exportiert.

    • Wenn der Dienst nicht exportiert wird, wird das Quick Access Wallet nicht angezeigt.
  3. Die Quick Access Wallet-Benutzeroberfläche bindet an den QuickAccessWalletService und ruft onWalletCardsRequested auf. Diese Methode nimmt ein Request-Objekt entgegen, das Daten über die Anzahl und Größe der Karten, die bereitgestellt werden können, sowie einen Rückruf enthält. Der Rückruf kann von einem Hintergrundthread aufgerufen werden.

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

  5. Sobald die Karten angezeigt werden, benachrichtigt die System-Benutzeroberfläche QuickAccessWalletService durch den Aufruf von onWalletCardSelected darüber, dass die erste Karte ausgewählt wurde.

    • onWalletCardSelected wird jedes Mal aufgerufen, wenn der Benutzer 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 Benutzer das Quick Access Wallet verwirft, benachrichtigt die System-Benutzeroberfläche QuickAccessWalletService durch Aufruf von onWalletDismissed .

Im obigen Beispiel bringt der Benutzer das Telefon in die Reichweite eines NFC-Zahlungsterminals, während die Brieftasche angezeigt wird. Eine Schlüsselkomponente bei der Abwicklung von NFC-Zahlungen ist HostApduService , der implementiert werden muss, um vom NFC-Leser bereitgestellte APDUs zu verarbeiten (weitere Informationen finden Sie unter Hostbasierte Kartenemulation ). Es wird davon ausgegangen, dass die Bezahl-App eine Aktivität startet, um den Fortschritt und das Ergebnis der Interaktion mit dem NFC-Terminal anzuzeigen. Allerdings wird die Quick Access Wallet-Benutzeroberfläche oben im App-Fenster angezeigt, was bedeutet, dass die Zahlungsaktivität durch die Quick Access Wallet-Benutzeroberfläche verdeckt wird. Um dies zu beheben, muss die App die System-Benutzeroberfläche darüber informieren, dass die Quick Access Wallet-Benutzeroberfläche geschlossen werden soll. Dies kann erreicht werden, indem ein Verweis auf den gebundenen QuickAccessWalletService abgerufen und sendWalletServiceEvent mit dem Ereignistyp TYPE_NFC_PAYMENT_STARTED aufgerufen wird.

QuickAccessWalletService-Beispielimplementierung

/** 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 Einzelheiten 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. Dabei handelt es sich um eine Berechtigung auf Signaturebene, die von der System-Benutzeroberfläche gehalten wird, was bedeutet, dass nur der System-UI-Prozess an Implementierungen von QuickAccessWalletService binden kann. Beachten Sie, dass seitlich geladene 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 überprü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 hinausgehen, die für die Bereitstellung von Hostkarten-Emulation-Zahlungsdiensten erforderlich sind.

Wenn die standardmäßige NFC-Zahlungs-App QuickAccessWalletService nicht implementiert oder exportiert, wird die Quick Access Wallet-Benutzeroberfläche nicht angezeigt.

Einstellungen in Android 12

Um das Quick Access Wallet über den Sperrbildschirm zu aktivieren oder zu deaktivieren, können Benutzer den Schalter „Wallet anzeigen“ unter „Einstellungen“ > „Anzeige“ > „Sperrbildschirm“ verwenden. Um das Wallet im Schatten zu deaktivieren, müssen Benutzer es manuell im Schatten der Schnelleinstellungen bearbeiten.

Schalten Sie um, um die Wallet auf dem Sperrbildschirm zu aktivieren oder zu deaktivieren

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

Einstellungen in Android 11

Benutzer können die Quick Access Wallet-Funktion über die Einstellungen-App deaktivieren. Die Einstellungsseite finden Sie unter Einstellungen > System > Gesten > Karten & Pässe .

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

Anpassung

Hinzufügen der Quick Access Wallet-Ansicht zu einem anderen Ort in der System-Benutzeroberfläche

Die Quick Access Wallet-Benutzeroberfläche ist als System-Plugin aufgebaut. Obwohl die AOSP-Implementierung davon in GlobalActionsDialog Gebrauch macht (angezeigt bei langem Drücken der Taste), können Sie die Funktion hinter eine andere Geste verschieben, solange Sie den von der Plugin-Schnittstelle angegebenen Vertrag beibehalten.

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 Quick Access Wallet-Benutzeroberfläche implementiert GlobalActionsPanelPlugin und PanelViewController . GlobalActionsDialog ruft mithilfe von com.android.systemui.Dependency eine Instanz des Wallet-Plugins ab:

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

Nachdem überprüft wurde, dass das Plugin ungleich Null ist und dass der von onPanelShown zurückgegebene PanelViewController ungleich Null ist, hängt der Dialog die von getPanelContent bereitgestellte View an seine eigene View an und stellt entsprechende Rückrufe 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();

Um das Quick Access Wallet aus dem Power-Menü zu entfernen, lassen Sie das QuickAccessWallet Ziel im System-Build weg. Um das Quick Access Wallet aus dem Power-Menü zu entfernen, es aber einer anderen von der System-Benutzeroberfläche bereitgestellten Ansicht hinzuzufügen, schließen Sie das Build-Ziel ein und entfernen Sie Verweise auf das GlobalActionsPanelPlugin aus GlobalActionsImpl .

Festlegen von Standardkonfigurationen

Android 12

In Android 12 oder höher ist das Quick Access Wallet immer im Schatten der Schnelleinstellungen sichtbar. Die Sichtbarkeit des Quick Access Wallets im Sperrbildschirm wird durch die folgende sichere Einstellung eingeschränkt: LOCKSCREEN_SHOW_WALLET . Diese Einstellung steuert, ob das Quick Access Wallet-Symbol unten rechts auf dem Sperrbildschirm angezeigt wird. Diese Einstellung ist standardmäßig auf true gesetzt, kann aber vom Benutzer unter „Einstellungen“ > „Anzeige“ > „Sperrbildschirm“ > „Wallet anzeigen“ deaktiviert werden.

Android 11

In Android 11 wird die Sichtbarkeit der Quick Access Wallet durch zwei sichere Einstellungen eingeschränkt: GLOBAL_ACTIONS_PANEL_ENABLED und GLOBAL_ACTIONS_PANEL_AVAILABLE . Die Einstellung AVAILABLE steuert, 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 an derselben Stelle standardmäßig auf true gesetzt, kann aber vom Benutzer in den Einstellungen deaktiviert werden. Um das Standardverhalten zu ändern, ändern Sie WalletPluginService#enableFeatureInSettings .

Validierung

Führen Sie CTS- und manuelle Tests durch, um Ihre Implementierung des Quick Access Wallet zu validieren. Bei Änderungen am Plugin sollen auch die enthaltenen Robolectric-Tests durchgeführt werden.

CTS-Tests

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

Manuelle Tests für Android 12

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

Verfügbarkeit

  • Wenn die standardmäßige NFC-Zahlungs-App diese Funktion nicht unterstützt, ist das Quick Access Wallet weder in den Schnelleinstellungen noch im Sperrbildschirm zugänglich.
  • Wenn die Standard-NFC-Zahlungs-App die Funktion unterstützt, ist das Quick Access Wallet im Schatten der Schnelleinstellungen verfügbar.
  • Wenn die Standard-NFC-Zahlungs-App die Funktion unterstützt und die Einstellung LOCKSCREEN_SHOW_WALLET true ist, ist das Quick Access Wallet über den Sperrbildschirm zugänglich.
  • Wenn die standardmäßige NFC-Zahlungs-App die Funktion unterstützt und die Einstellung LOCKSCREEN_SHOW_WALLET auf false gesetzt ist, ist das Quick Access Wallet über den Sperrbildschirm nicht zugänglich.

Null-Zustand

  • Wenn QuickAccessWalletService aktiviert und exportiert ist, aber keine Karten bereitstellt, wird die Kachel im Schatten angezeigt, wie im Beispiel in Abbildung 7 gezeigt. Durch Klicken auf die Kachel wird die Standard-NFC-Zahlungs-App geöffnet.

    Beispielkachel im Schatten, die die Standard-NFC-Zahlungs-App zeigt

    Abbildung 7. Beispielkachel im Schatten, die die Standard-NFC-Zahlungs-App zeigt.

  • Durch Klicken auf die leere Statusansicht, wie in Abbildung 8 dargestellt, wird die Standard-NFC-Zahlungs-App geöffnet. Diese leere Statusansicht wird nur angezeigt, wenn der Benutzer noch eine Karte in der Brieftasche hat, die Karte von der Kartendetailseite entfernt und dann zur Brieftaschenansicht zurückkehrt.

  • Auf dem Sperrbildschirm wird das Brieftaschensymbol angezeigt.

Leere Statusansicht im Quick Access Wallet

Abbildung 8. Leere Statusansicht in der Quick Access Wallet-Benutzeroberfläche.

Nicht-Null-Zustand

  • Wenn die Wallet-App eine oder mehrere Karten bereitstellt, erscheint die Kachel im Schatten wie in Abbildung 9 dargestellt.

    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.

  • Ein Klick auf die Kachel zeigt ein Kartenkarussell.

  • Auf dem Sperrbildschirm wird eine Schaltfläche angezeigt, die das Quick Access Wallet öffnet.

    Quick Access Wallet-Benutzeroberfläche mit angezeigter Karte

    Abbildung 10. Quick Access Wallet-Benutzeroberfläche mit angezeigter Karte.

  • Wenn die angezeigte Karte eine NFC-Zahlungsmethode darstellt, führt das Halten des Telefons an ein NFC-Zahlungsterminal dazu, dass diese Zahlungsmethode verwendet wird und die Wallet-Ansicht verworfen wird.

  • Durch Klicken auf eine angezeigte Karte wird die detaillierte Aktivität für diese Karte geöffnet.

  • Wenn QuickAccessWalletService mehrere Karten bereitstellt, kann der Benutzer zwischen den Karten wechseln.

  • Das Überlaufmenü enthält einen Eintrag: Öffnen Sie die Sperrbildschirmeinstellungen, damit der Benutzer die Option „Wallet anzeigen“ ändern kann.

Sperrzustandstests

  • Wenn das Telefon gesperrt ist, wird die Brieftasche im Schatten der Schnelleinstellungen mit der Beschreibung „ Eine Karte hinzufügen“ angezeigt, wenn in der Standard-Zahlungs-App keine Karte vorhanden ist, oder „Entsperren“, wenn in der Standard-Zahlungs-App Karten vorhanden sind.
  • Wenn das Telefon gesperrt ist, wird die Sichtbarkeit der Brieftasche auf dem Sperrbildschirm durch die Einstellung Secure.LOCKSCREEN_SHOW_WALLET gesteuert, die in den Einstellungen gesteuert wird.
  • Wenn das Telefon gesperrt ist, LOCKSCREEN_SHOW_WALLET false hat und in der Standard-NFC-Zahlungs-App keine Karte vorhanden ist, wird die Brieftasche nicht auf dem Sperrbildschirm angezeigt.
  • Wenn das Telefon gesperrt ist, LOCKSCREEN_SHOW_WALLET true ist und in der Standard-NFC-Zahlungs-App keine Karte vorhanden ist, wird die Brieftasche nicht auf dem Sperrbildschirm angezeigt.
  • Wenn das Telefon gesperrt ist, LOCKSCREEN_SHOW_WALLET true ist und in der Standard-NFC-Zahlungs-App Karten vorhanden sind, wird die Brieftasche auf dem Sperrbildschirm angezeigt.
  • Wenn Sie das Telefon entsperren, während die Brieftasche auf dem Sperrbildschirm angezeigt wird, werden die Karten erneut abgefragt, was zu einem anderen Karteninhalt führen kann.

Barrierefreiheitstests

  • Talkback-Benutzer 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 und rechts wischen, werden die einzelnen Karten nacheinander ausgewählt. Talkback-Nutzer können an einem NFC-Zahlungsterminal eine NFC-Zahlungsmethode auswählen und nutzen.

Manuelle Tests für Android 11

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

Verfügbarkeit

  • Wenn die Einstellung GLOBAL_ACTIONS_PANEL_ENABLED true ist und die standardmäßige NFC-Zahlungs-App die Funktion unterstützt, ist das Quick Access Wallet zugänglich.
  • Wenn die Einstellung GLOBAL_ACTIONS_PANEL_ENABLED false ist und die Standard-NFC-Zahlungs-App die Funktion unterstützt, ist das Quick Access Wallet nicht zugänglich.
  • Wenn die Einstellung GLOBAL_ACTIONS_PANEL_ENABLED true ist und die standardmäßige NFC-Zahlungs-App die Funktion nicht unterstützt, ist das Quick Access Wallet nicht zugänglich.
  • Wenn die Einstellung GLOBAL_ACTIONS_PANEL_ENABLED false ist und die standardmäßige NFC-Zahlungs-App die Funktion nicht unterstützt, ist das Quick Access Wallet nicht zugänglich.

Null-Zustand

  • Wenn QuickAccessWalletService aktiviert und exportiert ist, aber keine Karten bereitstellt, zeigt die Quick Access Wallet-Benutzeroberfläche die leere Statusansicht an.
  • Durch Klicken auf die leere Statusansicht wird die Wallet-App geöffnet.

    Leere Statusansicht in der Quick Access Wallet-Benutzeroberfläche
    Abbildung 11. Leere Statusansicht in der Quick Access Wallet-Benutzeroberfläche.

Nicht-Null-Zustand

  • Wenn die Wallet-App eine oder mehrere Karten bereitstellt, werden die Karten in der Quick Access Wallet-Benutzeroberfläche angezeigt.

    Quick Access Wallet-Benutzeroberfläche mit angezeigter Karte
    Abbildung 12. Quick Access Wallet-Benutzeroberfläche mit angezeigter Karte.
  • Wenn die angezeigte Karte eine NFC-Zahlungsmethode darstellt, führt das Halten des Telefons an ein NFC-Zahlungsterminal dazu, dass diese Zahlungsmethode verwendet wird und die Wallet-Ansicht verworfen wird.

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

  • Wenn QuickAccessWalletService mehrere Karten bereitstellt, kann der Benutzer zwischen den Karten wechseln.

  • Das Überlaufmenü enthält zwei Einträge: einen, der die Wallet-App öffnet, und einen, der den Bildschirm „Karten & Pässe anzeigen“ in den Einstellungen öffnet.

Sperrzustandstests

  • Wenn das Telefon gesperrt ist, wird die Sichtbarkeit der Brieftasche durch die Einstellung Settings.Secure.POWER_MENU_LOCK_SHOW_CONTENT gesteuert, die in den Einstellungen gesteuert werden kann.
  • Wenn das Telefon gesperrt ist und POWER_MENU_LOCK_SHOW_CONTENT false ist, wird die Brieftasche nicht angezeigt.
  • Wenn das Telefon gesperrt ist und POWER_MENU_LOCK_SHOW_CONTENT true ist, wird die Wallet angezeigt.
  • Das Entsperren des Telefons, während die Brieftasche auf dem Sperrbildschirm angezeigt wird, führt dazu, dass die Karten erneut abgefragt werden, was zu einem anderen Karteninhalt führen kann.

Barrierefreiheitstests

  • TalkBack-Benutzer 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 und rechts wischen, werden die einzelnen Karten nacheinander ausgewählt. TalkBack-Nutzer können an einem NFC-Zahlungsterminal eine NFC-Zahlungsmethode auswählen und nutzen.