Hızlı Erişim Cüzdanı

Android 11'den itibaren kullanılabilen Hızlı Erişim Cüzdan özelliği, kullanıcının ödeme kartlarına ve ilgili kartlara doğrudan güç menüsünden erişmesine olanak tanır. Başlıca kullanım alanları arasında, NFC terminalinde işlem yapmadan önce uygun ödeme yöntemini seçme ve yaklaşan etkinlikler için uçuşlara ve diğer kartlara hızlıca erişme yer alır.

Android 12 veya sonraki sürümlerde, Şekil 1 ve Şekil 2'de gösterildiği gibi, Hızlı Erişim Cüzdan özelliği gölgede kullanılabilir.

Gölgede Cüzdan'a hızlı erişim özelliği
Şekil 1. Cüzdan'a hızlı erişim özelliği (cihaz kilitliyken).
Gölgede Cüzdan'a hızlı erişim özelliği
Şekil 2. Cüzdan'a hızlı erişim özelliği (cihazın kilidi açık olmalıdır).

Android 11'de bu özellik, Şekil 3'te gösterildiği gibi güç menüsünden kullanılabilir.

Güç menüsündeki Cüzdan'a hızlı erişim özelliği
Şekil 3. Güç menüsünde Cüzdan'a hızlı erişim özelliği.

Şartlar

Hızlı erişim Cüzdan özelliğini kullanmak için cihazınızda NFC olmalıdır. Bu özellik, varsayılan NFC ödeme uygulamasının QuickAccessWalletService ile bağlanır. Bu nedenle, cihazın NFC ana kart emülasyonunu (HCE) da desteklemesi gerekir.

Özelliğe genel bakış

Cüzdan'a hızlı erişim özelliği iki bölümden oluşur: Cüzdan'a hızlı erişim kullanıcı arayüzü ve Cüzdan'a hızlı erişim kartı sağlayıcısı.

Android 12 veya sonraki sürümlerde Cüzdan kullanıcı arayüzü, SystemUI'da çalışır ve frameworks/base/packages/SystemUI/src/com/android/systemui/wallet konumundadır. Android 11'de, platform/packages/apps/QuickAccessWallet konumunda bulunan Cüzdan kullanıcı arayüzünün yüklenmesi ve beyaz listeye eklenmesi gerekir.

Hızlı erişim cüzdanı kartı sağlayıcısı, varsayılan NFC ödeme uygulamasıdır. Kullanıcılar aynı anda birden fazla NFC ödeme uygulaması yükleyebilir ancak yalnızca varsayılan NFC ödeme uygulaması, güç menüsünde kartları gösterebilir. Başlangıçta hangi NFC ödeme uygulamasının varsayılan olarak ayarlanacağını belirleyebilirsiniz ancak kullanıcılar Ayarlar'da farklı bir uygulama seçebilir. Yalnızca bir NFC ile ödeme uygulaması yüklüyse bu uygulama otomatik olarak varsayılan uygulama olur (bkz. CardEmulationManager).

Uygulama

Hızlı erişim Cüzdanı kullanıcı arayüzüne kart sağlamak için NFC ödeme uygulamalarının QuickAccessWalletService uygulaması gerekir. Ödeme uygulamaları, hizmetin reklamını yapan bir manifest girişi içermelidir.

Yalnızca Sistem Arayüzü'nün QuickAccessWalletService'ya bağlanabilmesi için NFC ile ödeme uygulamasının android.permission.BIND_QUICK_ACCESS_WALLET_SERVICE iznini istemesi gerekir. Bu iznin istenmesi, yalnızca Sistem Arayüzü'nün QuickAccessWalletService'ya bağlanabilmesini sağlar.

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

Cüzdanla ilgili ek bilgiler, bağlı XML dosyasına dahil edilir:

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

Ardından, ödeme uygulaması QuickAccessWalletService'yı uygulamalıdır:

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

HostApduService, bir NFC işlemini işlemeye başlarsa ve bunun sonucunda ödemenin ilerleme durumunu ve sonucunu göstermek için bir etkinlik başlatırsa bağlı QuickAccessWalletService öğesine referans almaya çalışmalı ve QuickAccessWalletService#sendEvent öğesini TYPE_NFC_PAYMENT_STARTED etkinlik türüyle çağırmalıdır. Bu durumda, Cüzdan'a hızlı erişim kullanıcı arayüzü kapatılır ve kullanıcı, ödeme etkinliğini kesintisiz olarak görebilir.

QuickAccessWalletService uygulama hakkında ek belgeler için QuickAccessWalletService ve TestQuickAccessWalletService CTS testine bakın.

Android 11'de Cüzdan'a hızlı erişim kullanıcı arayüzünü etkinleştirme

Android 11'de güç menüsünden Hızlı Erişim Cüzdanı'na erişilebilmesini sağlamak için derlemeye QuickAccessWallet hedefi ekleyin ve aşağıdaki kod örneğinde kalın olarak belirtilen satırı overlay/frameworks/base/packages/SystemUI/res/values/config.xml dosyasına ekleyerek globalactions.wallet eklentisini etkinleştirin.

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

def_nfc_payment_component kullanarak ayarlar yapılandırma dosyasında varsayılan NFC ile ödeme uygulamasını belirtin.

Varsayılan NFC ile ödeme uygulaması, Hızlı Erişim Cüzdanı'na kart sağlamak için QuickAccessWalletService özelliğini kullanıma sunmalıdır. Varsayılan NFC ile ödeme uygulaması bu hizmeti dışa aktarmıyorsa cüzdan kullanıcı arayüzü gizlenir.

QuickAccessWalletService uygulama ayrıntıları

QuickAccessWalletService, uygulanması gereken üç soyut yönteme sahiptir: onWalletCardsRequested, onWalletCardSelected ve onWalletDismissed. Aşağıdaki sıra diyagramı, NFC ile ödemeden hemen önce Hızlı Erişim Cüzdanı'nın görüntülendiği bir arama sırasını gösterir.

Cüzdan&#39;a hızlı erişim sıralı diyagramı

Cüzdan&#39;a hızlı erişim görüntülenirken örnek arama sırası
Şekil 4. Cüzdan'a Hızlı Erişim görüntülendiğinde örnek arama sırası

Hızlı Erişim Cüzdanı'nın tüm görüntülemelerini NFC ile ödeme takip etmez ancak yukarıdaki Şekil 4'te QuickAccessWalletService'nın tüm özellikleri gösterilmektedir. Bu örnekte, Hızlı Erişim Cüzdan kartı sağlayıcısı, mavi renkle belirtilen öğeleri uygular. Ödeme kartlarının cihazda bir veritabanında saklandığı ve PaymentCardManager adlı bir arayüz üzerinden erişildiği varsayılır. Ayrıca, PaymentActivity adlı bir etkinliğin NFC ile ödemenin sonucunu gösterdiği varsayılır. Akış şu şekilde ilerler:

  1. Kullanıcı, Cüzdan'a hızlı erişim özelliğini açmak için bir hareket yapar.
  2. Hızlı Erişim Cüzdanı kullanıcı arayüzü (Sistem Arayüzünün bir parçası) varsayılan NFC ile ödeme uygulamasının QuickAccessWalletService dışa aktarıp aktarmadığını görmek için paket yöneticisini kontrol eder.

    • Hizmet dışa aktarılmamışsa Hızlı Erişim Cüzdanı gösterilmez.
  3. Cüzdan'a hızlı erişim kullanıcı arayüzü QuickAccessWalletService ile bağlanır ve onWalletCardsRequested işlevini çağırır. Bu yöntem, sağlanabilecek kartların sayısı ve boyutuyla ilgili verileri içeren bir istek nesnesi ve bir geri çağırma alır. Geri çağırma, arka plan iş parçacığından çağrılabilir.

  4. QuickAccessWalletService, göstermek istediği kartları hesaplar, ardından sağlanan geri çağırmada onSuccess yöntemini çağırır. Hizmetin bu işlemleri arka plan iş parçacığında yapması önerilir.

  5. Kartlar gösterilir gösterilmez Sistem Arayüzü, QuickAccessWalletService çağrısı yaparak ilk kartın seçildiğini bildirir onWalletCardSelected.

    • onWalletCardSelected, kullanıcı her yeni kart seçtiğinde çağrılır.
    • Şu anda seçili kart değişmemiş olsa bile onWalletCardSelected çağrılabilir.
  6. Kullanıcı, Hızlı Erişim Cüzdanı'nı kapattığında Sistem Arayüzü, onWalletDismissed çağrısı yaparak QuickAccessWalletService'yı bilgilendirir.

Yukarıdaki örnekte, kullanıcı cüzdan gösterilirken telefonu bir NFC ile ödeme terminalinin menziline getiriyor. NFC ödemelerini işlemenin önemli bir bileşeni HostApduService'dir. Bu bileşen, NFC okuyucu tarafından sağlanan APDU'ları işlemek için uygulanmalıdır (daha fazla bilgi için Host tabanlı kart emülasyonu bölümüne bakın). Ödeme uygulamasının, NFC terminaliyle etkileşimin ilerleme durumunu ve sonucunu göstermek için bir etkinlik başlattığı varsayılır. Ancak, Hızlı Erişim Cüzdan kullanıcı arayüzü uygulama penceresinin üzerinde gösterilir. Bu nedenle, ödeme etkinliği Hızlı Erişim Cüzdan kullanıcı arayüzü tarafından gizlenir. Bunu düzeltmek için uygulama, Sistem Arayüzü'ne Hızlı Erişim Cüzdanı kullanıcı arayüzünün kapatılması gerektiğini bildirmelidir. Bunu, bağlı QuickAccessWalletService öğesine referans alarak ve etkinlik türü TYPE_NFC_PAYMENT_STARTED ile sendWalletServiceEvent öğesini çağırarak yapabilir.

QuickAccessWalletService örnek uygulaması

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

QuickAccessWalletService hakkında daha fazla bilgi için QuickAccessWalletService API referansı bölümüne bakın.

İzinler

QuickAccessWalletService için manifest girişi, Android 11'de kullanıma sunulan android.permission.BIND_QUICK_ACCESS_WALLET_SERVICE iznini gerektirmelidir. Bu, Sistem Arayüzü tarafından tutulan bir imza düzeyinde izindir. Bu nedenle, yalnızca Sistem Arayüzü işlemi QuickAccessWalletService uygulamalarına bağlanabilir. Yanlışlıkla yüklenen uygulamaların bu izni talep edebileceğini ve Android 10 veya önceki sürümlerin yüklü olduğu cihazlarda QuickAccessWalletService verilerine tam erişim elde edebileceğini unutmayın. Bunu önlemek için hizmetin onCreate içindeki derleme sürümünü kontrol etmesi ve hizmeti yalnızca Android 11 ve sonraki sürümleri çalıştıran cihazlarda etkinleştirmesi önerilir. Ana makine kartı emülasyonu ödeme hizmetleri sağlamak için gerekenlerin dışında başka uygulama izinleri gerekmez.

Varsayılan NFC ile ödeme uygulaması QuickAccessWalletService'yı uygulamıyor veya dışa aktarmıyorsa Hızlı Erişim Cüzdanı kullanıcı arayüzü gösterilmez.

Android 12'deki ayarlar

Kilit ekranından cüzdana hızlı erişim özelliğini etkinleştirmek veya devre dışı bırakmak için kullanıcılar Ayarlar > Ekran > Kilit ekranı'nda Cüzdanı göster açma/kapatma düğmesini kullanabilir. Kullanıcıların, cüzdanı gölge içinde devre dışı bırakmak için hızlı ayarlar gölgesinde manuel olarak düzenlemesi gerekir.

Kilit ekranından cüzdanı etkinleştirmek veya devre dışı bırakmak için açma/kapatma düğmesini tıklayın.

Şekil 5. Ayarlar'daki Kilit ekranı sayfasında cüzdan açma/kapatma düğmesini gösterin.

Android 11'deki ayarlar

Kullanıcılar, Cüzdan'a hızlı erişim özelliğini Ayarlar uygulamasından kapatabilir. Ayarlar sayfası Ayarlar > Sistem > Hareketler > Kartlar bölümünde bulunur.

Cüzdan&#39;a hızlı erişim özelliğini etkinleştirmek veya devre dışı bırakmak için ayarlar sayfası
Şekil 6. Cüzdan'a hızlı erişim özelliğini etkinleştirmek veya devre dışı bırakmak için ayarlar sayfası.

Özelleştirme

Hızlı erişim Cüzdan görünümünü Sistem Arayüzünde başka bir konuma ekleme

Cüzdan'a hızlı erişim kullanıcı arayüzü, sistem eklentisi olarak oluşturulmuştur. AOSP uygulaması, GlobalActionsDialog'da (güç düğmesine uzun basıldığında gösterilir) bu özelliği kullanmasına rağmen, eklenti arayüzü tarafından belirtilen sözleşmeyi koruduğunuz sürece özelliği farklı bir hareketin arkasına taşıyabilirsiniz.

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

Cüzdan'a hızlı erişim kullanıcı arayüzü, GlobalActionsPanelPlugin ve PanelViewController'ü uygular. GlobalActionsDialog com.android.systemui.Dependency kullanarak cüzdan eklentisinin bir örneğini alır:

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

Eklentinin boş olmadığını ve PanelViewController onPanelShown tarafından döndürülen PanelViewController değerinin boş olmadığını kontrol ettikten sonra iletişim kutusu, getPanelContent tarafından sağlanan View değerini kendi View değerine ekler ve sistem etkinlikleri için uygun geri çağırma işlevlerini sağlar.

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

Cüzdan'a hızlı erişim seçeneğini güç menüsünden kaldırmak için sistem derlemesinde QuickAccessWallet hedefini atlayın. Hızlı Erişim Cüzdanı'nı güç menüsünden kaldırıp farklı bir Sistem Arayüzü tarafından sağlanan görünüme eklemek için derleme hedefini ekleyin ve GlobalActionsPanelPlugin ile ilgili referansları GlobalActionsImpl'den kaldırın.

Varsayılan yapılandırmaları ayarlama

Android 12

Android 12 veya sonraki sürümlerde, Hızlı Erişim Cüzdanı her zaman hızlı ayarlar gölgesinde görünür. Kilit ekranında Hızlı Erişim Cüzdanı'nın görünürlüğü aşağıdaki güvenli ayarla kontrol edilir: LOCKSCREEN_SHOW_WALLET. Bu ayar, kilit ekranının sağ alt kısmında Hızlı Erişim Cüzdanı simgesinin gösterilip gösterilmeyeceğini kontrol eder. Bu ayar varsayılan olarak true şeklinde ayarlanır ancak kullanıcı tarafından Ayarlar > Ekran > Kilit ekranı > Cüzdanı göster bölümünden kapatılabilir.

Android 11

Android 11'de, Hızlı Erişim Cüzdanı'nın görünürlüğü iki güvenli ayarla kontrol edilir: GLOBAL_ACTIONS_PANEL_ENABLED ve GLOBAL_ACTIONS_PANEL_AVAILABLE. AVAILABLE ayarı, özelliğin Ayarlar'da etkinleştirilip devre dışı bırakılabileceğini kontrol eder. Bu ayar, WalletPluginService tarafından true olarak ayarlanmış. QuickAccessWallet derlemeye dahil edilmezse ayar false olarak kalır. ENABLED ayarı, aynı yerde varsayılan olarak true olarak ayarlanır ancak kullanıcı tarafından Ayarlar'da kapatılabilir. Varsayılan davranışı değiştirmek için WalletPluginService#enableFeatureInSettings ayarını değiştirin.

Doğrulama

Hızlı Erişim Cüzdanı uygulamanızı doğrulamak için CTS ve manuel testleri çalıştırın. Eklentide yapılan değişiklikler, dahil edilen Robolectric testlerini de çalıştırmalıdır.

CTS testleri

cts/tests/quickaccesswallet konumundaki CTS testlerini çalıştırın.

Android 12 için manuel testler

Hızlı Erişim Cüzdanı'nın temel özelliklerini test etmek için bir NFC ile ödeme terminali (gerçek veya sahte) ve QuickAccessWalletService (cüzdan uygulaması) uygulayan bir NFC ile ödeme uygulaması gerekir. Test edilmesi gereken temel özellikler arasında şunlar yer alır: kullanılabilirlik, sıfır durumu, kart seçimi ve kilit ekranı davranışı.

Kullanılabilirlik

  • Varsayılan NFC ile ödeme uygulaması özelliği desteklemiyorsa Hızlı Erişim Cüzdanı'na hızlı ayarlardan veya kilit ekranından erişilemez.
  • Varsayılan NFC ile ödeme uygulaması özelliği destekliyorsa Hızlı Erişim Cüzdanı'na Hızlı Ayarlar gölgesinden erişilebilir.
  • Varsayılan NFC ile ödeme uygulaması özelliği destekliyorsa ve LOCKSCREEN_SHOW_WALLET ayarı true ise kilit ekranında Hızlı Erişim Cüzdanı'na erişilebilir.
  • Varsayılan NFC ile ödeme uygulaması özelliği destekliyorsa ve LOCKSCREEN_SHOW_WALLET ayarı false ise kilit ekranında Hızlı Erişim Cüzdanı kullanılamaz.

Sıfır durumu

  • QuickAccessWalletService etkinleştirilip dışa aktarılırsa ancak herhangi bir kart sağlamazsa gölgedeki kutu, Şekil 7'deki örnekte gösterildiği gibi görünür. Kutuyu tıkladığınızda varsayılan NFC ile ödeme uygulaması açılır.

    Aşağı açılır gölgedeki, varsayılan NFC ile ödeme uygulamasını gösteren örnek kutucuk

    Şekil 7. Gölgede varsayılan NFC ile ödeme uygulamasını gösteren örnek kutucuk.

  • Şekil 8'de gösterildiği gibi boş durum görünümünü tıkladığınızda varsayılan NFC ile ödeme uygulaması açılır. Bu boş durum görünümü yalnızca kullanıcının cüzdanda bir kartı kaldığında, kartı kart ayrıntıları sayfasından kaldırdığında ve ardından cüzdan görünümüne geri döndüğünde gösterilir.

  • Kilit ekranında cüzdan simgesi gösterilir.

Cüzdan&#39;a hızlı erişim bölümünde boş durum görünümü

Şekil 8. Cüzdan'a hızlı erişim kullanıcı arayüzünde boş durum görünümü.

Sıfır olmayan durum

  • Cüzdan uygulaması bir veya daha fazla kart sağlıyorsa gölgedeki karo, Şekil 9'da gösterildiği gibi görünür.

    Cüzdan uygulamasında bir veya daha fazla kart olduğunda gölgedeki örnek karo

    Şekil 9. Cüzdan uygulamasında bir veya daha fazla kart olduğunda gölgedeki örnek kutucuk.

  • Döşemeyi tıkladığınızda bir kart bandı gösterilir.

  • Kilit ekranında, Cüzdan'a hızlı erişim özelliğini açan bir düğme gösterilir.

    Kartın görüntülendiği, Cüzdan&#39;a hızlı erişim kullanıcı arayüzü

    Şekil 10. Kartın görüntülendiği, Cüzdan'a hızlı erişim kullanıcı arayüzü.

  • Görüntülenen kart bir NFC ödeme yöntemini temsil ediyorsa telefonu bir NFC ödeme terminaline tuttuğunuzda bu ödeme yöntemi kullanılır ve cüzdan görünümü kapatılır.

  • Görüntülenen bir kartı tıkladığınızda söz konusu kartın ayrıntılı etkinliği açılır.

  • QuickAccessWalletService tarafından birden fazla kart sağlanırsa kullanıcı kartlar arasında kaydırabilir.

  • Taşma menüsünde tek bir giriş bulunur: Kullanıcının Cüzdanı göster seçeneğini değiştirebilmesi için kilit ekranı ayarlarını açın.

Kilitleme durumu testleri

  • Telefon kilitliyse cüzdan, hızlı ayarlar gölgesinde görünür. Varsayılan ödeme uygulamasında kart yoksa Kart ekle, varsayılan ödeme uygulamasında kart varsa Kullanmak için kilidi açın açıklaması gösterilir.
  • Telefon kilitliyse kilit ekranındaki cüzdan görünürlüğü, Ayarlar'da kontrol edilen Secure.LOCKSCREEN_SHOW_WALLET ayarıyla yönetilir.
  • Telefon kilitliyse, LOCKSCREEN_SHOW_WALLET false ise ve varsayılan NFC ödeme uygulamasında kart yoksa cüzdan, kilit ekranında gösterilmez.
  • Telefon kilitliyse, LOCKSCREEN_SHOW_WALLET true ise ve varsayılan NFC ödeme uygulamasında kart yoksa cüzdan, kilit ekranında gösterilmez.
  • Telefon kilitliyse, LOCKSCREEN_SHOW_WALLET true ise ve varsayılan NFC ile ödeme uygulamasında kartlar varsa cüzdan, kilit ekranında gösterilir.
  • Cüzdan kilit ekranında gösterilirken telefonun kilidinin açılması, kartların yeniden istenmesine neden olur. Bu durum, farklı kart içeriklerinin gösterilmesine yol açabilir.

Erişilebilirlik testleri

  • Talkback kullanıcıları, cüzdan görünümünde sola ve sağa kaydırarak ve kartların içerik açıklamalarını dinleyerek gezinebilir.
  • TalkBack etkinken sola ve sağa kaydırma işlemi, kartları sırayla seçer. TalkBack kullanıcıları, NFC ödeme noktalarında NFC ile ödeme yöntemini seçip kullanabilir.

Android 11 için manuel testler

Hızlı Erişim Cüzdanı'nın temel özelliklerini test etmek için bir NFC ile ödeme terminali (gerçek veya sahte) ve QuickAccessWalletService (cüzdan uygulaması) uygulayan bir NFC ile ödeme uygulaması gerekir. Test edilmesi gereken temel özellikler arasında kullanılabilirlik, sıfır durumu, kart seçimi ve kilit ekranı davranışı yer alır.

Kullanılabilirlik

  • GLOBAL_ACTIONS_PANEL_ENABLED ayarı true ise ve varsayılan NFC ile ödeme uygulaması özelliği destekliyorsa Cüzdan'a hızlı erişim kullanılabilir.
  • GLOBAL_ACTIONS_PANEL_ENABLED ayarı false ise ve varsayılan NFC ile ödeme uygulaması özelliği destekliyorsa Cüzdan'a hızlı erişim kullanılamaz.
  • GLOBAL_ACTIONS_PANEL_ENABLED ayarı true ise ve varsayılan NFC ile ödeme uygulaması özelliği desteklemiyorsa Hızlı Erişim Cüzdanı kullanılamaz.
  • GLOBAL_ACTIONS_PANEL_ENABLED ayarı false ise ve varsayılan NFC ile ödeme uygulaması özelliği desteklemiyorsa Hızlı Erişim Cüzdanı kullanılamaz.

Sıfır durumu

  • QuickAccessWalletService etkinleştirilip dışa aktarılırsa ancak herhangi bir kart sağlamazsa Cüzdan'a hızlı erişim kullanıcı arayüzünde boş durum görünümü gösterilir.
  • Boş durum görünümünü tıkladığınızda Cüzdan uygulaması açılır.

    Cüzdan&#39;a hızlı erişim kullanıcı arayüzünde boş durum görünümü
    Şekil 11. Cüzdan'a hızlı erişim kullanıcı arayüzünde boş durum görünümü.

Sıfır olmayan durum

  • Cüzdan uygulaması bir veya daha fazla kart sağlıyorsa bu kartlar, Cüzdan'a hızlı erişim kullanıcı arayüzünde gösterilir.

    Kartın görüntülendiği, Cüzdan&#39;a hızlı erişim kullanıcı arayüzü
    Şekil 12. Kartın görüntülendiği Cüzdan kullanıcı arayüzüne hızlı erişim
  • Görüntülenen kart bir NFC ödeme yöntemini temsil ediyorsa telefonu bir NFC ödeme terminaline tuttuğunuzda bu ödeme yöntemi kullanılır ve cüzdan görünümü kapatılır.

  • Görüntülenen bir kartı tıkladığınızda cüzdan görünümü kapatılır ve söz konusu kartın ayrıntılı etkinliği açılır.

  • QuickAccessWalletService tarafından birden fazla kart sağlanırsa kullanıcı kartlar arasında kaydırabilir.

  • Taşma menüsünde iki giriş bulunur: biri Cüzdan uygulamasını açar, diğeri ise Ayarlar'da Kartları ve pasoları göster ekranını açar.

Kilitleme durumu testleri

  • Telefon kilitliyse cüzdan görünürlüğü, Ayarlar'dan kontrol edilebilen Settings.Secure.POWER_MENU_LOCK_SHOW_CONTENT ayarıyla yönetilir.
  • Telefon kilitliyse ve POWER_MENU_LOCK_SHOW_CONTENT false ise cüzdan gösterilmez.
  • Telefon kilitliyse ve POWER_MENU_LOCK_SHOW_CONTENT true ise cüzdan gösterilir.
  • Cüzdan kilit ekranında gösterilirken telefonun kilidinin açılması, kartların yeniden sorgulanmasına neden olur. Bu durum, farklı kart içeriklerinin gösterilmesine yol açabilir.

Erişilebilirlik testleri

  • TalkBack kullanıcıları, cüzdan görünümünde sola ve sağa kaydırarak ve kartların içerik açıklamalarını dinleyerek gezinebilir.
  • TalkBack etkinken sola ve sağa kaydırarak kartları tek tek seçebilirsiniz. TalkBack kullanıcıları, NFC ödeme noktasında NFC ile ödeme yöntemi seçip kullanabilir.