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ölgedeki Cüzdan'a hızlı erişim özelliği
1. şekil. Cüzdan'a hızlı erişim özelliği (cihaz kilitliyken).
Gölgedeki 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
3.şekil 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 kart 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 ödeme uygulaması yüklüyse bu uygulama otomatik olarak varsayılan uygulama olur (bkz. CardEmulationManager).

Uygulama

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

Yalnızca Sistem Kullanıcı Arayüzü'nün QuickAccessWalletService'ya bağlanabilmesi için NFC ödeme uygulamasının android.permission.BIND_QUICK_ACCESS_WALLET_SERVICE iznini istemesi gerekir. Bu iznin istenmesi, yalnızca Sistem Kullanıcı 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 işlevini 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 ve QuickAccessWalletService#sendEvent öğesini TYPE_NFC_PAYMENT_STARTED etkinlik türüyle çağırmaya da çalışmalıdır. Bu durumda, hızlı erişim Cüzdan 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 testini inceleyin.

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

Android 11'de hızlı erişim cüzdanını güç menüsünden kullanılabilir olacak şekilde yapılandırmak 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 ödeme uygulamasını belirtin.

Varsayılan NFC ödeme uygulaması, kartları Cüzdan'a hızlı erişim özelliğine sunmak için QuickAccessWalletService özelliğini kullanıma sunmalıdır. Varsayılan NFC ö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 şeması, NFC ödemesinden 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ı
4.şekil 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 ödemesi 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 ödemesinin sonucunu gösterdiği varsayılır. Akış şu şekilde ilerler:

  1. Kullanıcı, Cüzdan'a hızlı erişim özelliğini etkinleştirmek için bir hareket yapar.
  2. Hızlı Erişim Cüzdanı kullanıcı arayüzü (Sistem kullanıcı arayüzünün bir parçası) varsayılan NFC ö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 gerçekleştirmesi önerilir.

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

    • 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ı, Cüzdan'a hızlı erişim özelliğini kapattığında System UI, onWalletDismissed işlevini çağırarak QuickAccessWalletService'yı bilgilendirir.

Yukarıdaki örnekte, kullanıcı cüzdan gösterilirken telefonu bir NFC ödeme terminalinin menziline getiriyor. NFC ödemelerini işlemenin önemli bir bileşeni olan HostApduService, 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 başlıklı makaleye 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, Hızlı Erişim Cüzdanı kullanıcı arayüzünün kapatılması gerektiğini Sistem kullanıcı arayüzüne 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, System UI tarafından tutulan bir imza düzeyinde izindir. Bu nedenle, yalnızca System UI 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'daki derleme sürümünü kontrol etmesi ve hizmeti yalnızca Android 11 ve sonraki sürümlerin yüklü olduğu cihazlarda etkinleştirmesi önerilir. Ana makine kartı emülasyonu ödeme hizmetlerinin sağlanması için gerekli olanların dışında başka uygulama izni gerekmez.

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

Android 12'deki ayarlar

Kullanıcılar, kilit ekranından cüzdana hızlı erişimi etkinleştirmek veya devre dışı bırakmak için 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.

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

Android 11'deki ayarlar

Kullanıcılar, Hızlı Erişim Cüzdanı özelliğini Ayarlar uygulamasından kapatabilir. Ayarlar sayfası Ayarlar > Sistem > Hareketler > Kartlar ve geçiş kartları'nda bulunur.

Cüzdan&#39;a hızlı erişim özelliğini etkinleştirmek veya devre dışı bırakmak için ayarlar sayfası
6.şekil 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 Kullanıcı Arayüzü'nde başka bir konuma ekleme

Cüzdan'a hızlı erişim kullanıcı arayüzü, sistem eklentisi olarak geliştirilmiştir. AOSP uygulaması, GlobalActionsDialog'da (güç düğmesine uzun basıldığında gösterilir) bu özellikten yararlansa da 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 null olmadığını ve PanelViewController onPanelShown tarafından döndürülen değerin null 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 özelliğ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 Kullanıcı Arayüzü görünümüne eklemek için derleme hedefini ekleyin ve GlobalActionsPanelPlugin GlobalActionsImpl'dan GlobalActionsPanelPlugin ile ilgili referansları 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 devre dışı bırakılabilir.

Android 11

Android 11'de, Cüzdan'a hızlı erişim özelliğinin 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ıştır. 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'yi 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 NFC ödeme terminali (gerçek veya sahte) ve QuickAccessWalletService (cüzdan uygulaması) uygulayan bir NFC ö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 ödeme uygulaması özelliği desteklemiyorsa Hızlı Erişim Cüzdanı'na hızlı ayarlardan veya kilit ekranından erişilemez.
  • Varsayılan NFC ödeme uygulaması özelliği destekliyorsa Hızlı Erişim Cüzdanı'na hızlı ayarlar gölgesinden erişilebilir.
  • Varsayılan NFC ödeme uygulaması özelliği destekliyorsa ve LOCKSCREEN_SHOW_WALLET ayarı true ise kilit ekranında Cüzdan'a hızlı erişim sağlanabilir.
  • Varsayılan NFC ödeme uygulaması özelliği destekliyorsa ve LOCKSCREEN_SHOW_WALLET ayarı false ise kilit ekranında Cüzdan'a hızlı erişim 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 ödeme uygulaması açılır.

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

    Şekil 7. Gölgede varsayılan NFC ö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 ö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 özelliğinde 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 kutucuk

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

  • Kutuyu tıkladığınızda bir kart bantı 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ü

    10.şekil 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 yaklaştırdığınızda 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ıyorsa kullanıcı, kartlar arasında kaydırarak geçiş yapabilir.

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

Kilit 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ında cüzdanın 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 ö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, her kartı sırayla seçer. Talkback kullanıcıları, NFC ödeme terminallerinde NFC ö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 NFC ödeme terminali (gerçek veya sahte) ve QuickAccessWalletService (cüzdan uygulaması) uygulayan bir NFC ö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 ödeme uygulaması özelliği destekliyorsa Cüzdan'a hızlı erişim sağlanabilir.
  • GLOBAL_ACTIONS_PANEL_ENABLED ayarı false ise ve varsayılan NFC ö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 ödeme uygulaması özelliği desteklemiyorsa Cüzdan'a hızlı erişim kullanılamaz.
  • GLOBAL_ACTIONS_PANEL_ENABLED ayarı false ise ve varsayılan NFC ödeme uygulaması özelliği desteklemiyorsa Cüzdan'a hızlı erişim 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. Hızlı erişim Cüzdan 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ü
    12. şekil. 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 yaklaştırdığınızda 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ıyorsa kullanıcı, kartlar arasında kaydırarak geçiş yapabilir.

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

Kilit 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ırma işlemi, kartları sırayla seçer. TalkBack kullanıcıları, NFC ödeme terminalinde NFC ödeme yöntemi seçip kullanabilir.