Hızlı Erişim Cüzdanı

Android 11'de sunulan Hızlı Erişim Cüzdan özelliği, kullanıcının ödeme kartlarına ve ilgili geçiş kartlarına doğrudan güç menüsünden erişmesine olanak tanıyor. Başlıca kullanım örnekleri arasında, NFC terminalinde bir işlem gerçekleştirmeden önce uygun ödeme yönteminin seçilmesi ve yaklaşan etkinlikler için uçuşlara ve diğer geçiş kartlarına hızla erişilmesi yer alıyor.

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

Gölgede Hızlı Erişim Cüzdanı özelliği
Şekil 1. Hızlı Erişim Cüzdanı özelliği (cihaz kilitli).
Gölgede Hızlı Erişim Cüzdanı özelliği
Şekil 2. Hızlı Erişim Cüzdanı özelliği (cihazın kilidi açık).

Android 11'de bu özelliğe Şekil 3'te gösterildiği gibi güç menüsünden ulaşılabilir.

Güç menüsünde Hızlı Erişim Cüzdanı özelliği
Şekil 3. Güç menüsündeki Hızlı Erişim Cüzdanı özelliği.

Gereksinimler

Hızlı Erişim Cüzdanı özelliğini kullanabilmeniz için cihazınızda NFC bulunmalıdır. Bu özellik, varsayılan NFC ödeme uygulamasının QuickAccessWalletService bağlanır; bu, cihazın aynı zamanda NFC ana bilgisayar tabanlı kart emülasyonunu (HCE) desteklemesi gerektiği anlamına gelir.

Özelliklere genel bakış

Hızlı Erişim Cüzdanının iki bölümü vardır: Hızlı Erişim Cüzdanı kullanıcı arayüzü ve Hızlı Erişim Cüzdanı kart sağlayıcısı.

Android 12 veya sonraki sürümlerde, Cüzdan Kullanıcı Arayüzü Sistem Kullanıcı Arayüzünde çalışır ve frameworks/base/packages/SystemUI/src/com/android/systemui/wallet konumunda bulunur. Android 11'de platform/packages/apps/QuickAccessWallet konumunda bulunan Cüzdan Kullanıcı Arayüzü kurulmalı ve beyaz listeye eklenmelidir.

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ını 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ı belirtebilirsiniz ancak kullanıcılar Ayarlar'dan farklı bir uygulama seçebilir. Yalnızca bir NFC ödeme uygulaması yüklüyse, bu otomatik olarak varsayılan haline gelir (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ını uygulaması gerekir. Ödeme uygulamaları, hizmetin reklamını yapan bir bildirim girişi içermelidir.

QuickAccessWalletService yalnızca Sistem Kullanıcı Arayüzünün bağlanabildiğinden emin olmak için NFC ödeme uygulamasının android.permission.BIND_QUICK_ACCESS_WALLET_SERVICE iznini gerektirmesi gerekir. Bu iznin gerekli kılınması, yalnızca Sistem Kullanıcı Arayüzünün QuickAccessWalletService 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>

M-cüzdanla ilgili ek bilgiler bağlantılı XML dosyasında yer almaktadır:

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

Daha sonra ödeme uygulamasının QuickAccessWalletService uygulamasını uygulaması gerekir:

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 gerçekleştirmeye başlarsa ve bunun sonucunda ödemenin ilerlemesini ve sonucunu görüntülemek için bir etkinlik başlatırsa, aynı zamanda ilgili QuickAccessWalletService bir referans almayı denemeli ve TYPE_NFC_PAYMENT_STARTED olay türüyle QuickAccessWalletService#sendEvent çağırmalıdır. . Bu, Hızlı Erişim Cüzdanı Arayüzünün kapatılmasına neden olur ve böylece kullanıcının ödeme etkinliğini engelsiz bir şekilde görmesine olanak tanır.

QuickAccessWalletService uygulamasına ilişkin ek belgeler için QuickAccessWalletService ve TestQuickAccessWalletService CTS testine bakın.

Android 11'de Hızlı Erişim Cüzdan Kullanıcı Arayüzünü Etkinleştirme

Hızlı Erişim Cüzdanını Android 11'deki güç menüsünden kullanılabilecek şekilde yapılandırmak için yapıya QuickAccessWallet hedefini ekleyin ve aşağıdaki kod örneğindeki kalın satırı overlay/frameworks/base/packages/SystemUI/res/values/config.xml ekleyerek globalactions.wallet eklentisini etkinleştirin. overlay/frameworks/base/packages/SystemUI/res/values/config.xml dosyası.

<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ı, Hızlı Erişim Cüzdanına kart sağlamak için QuickAccessWalletService açığa çıkarmalı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öntemi vardır: onWalletCardsRequested , onWalletCardSelected ve onWalletDismissed . Aşağıdaki sıra şeması, Hızlı Erişim Cüzdanı bir NFC ödemesinden hemen önce görüntülendiğinde bir çağrı sırasını göstermektedir.

Hızlı Erişim Cüzdanı sıra şeması

Hızlı Erişim Cüzdanı görüntülendiğinde örnek arama sırası
Şekil 4. Hızlı Erişim Cüzdanı görüntülendiğinde örnek arama sırası.

Hızlı Erişim Cüzdanının tüm görünümlerinin ardından bir NFC ödemesi gelmez, ancak yukarıdaki Şekil 4, QuickAccessWalletService tüm yeteneklerini göstermektedir. Bu örnekte Hızlı Erişim Cüzdanı kartı sağlayıcısı maviyle özetlenen öğeleri uyguluyor. Ödeme kartlarının cihazda bir veritabanında saklandığı ve ödeme kartlarına PaymentCardManager adlı bir arayüz üzerinden erişildiği varsayılmaktadır. Ayrıca PaymentActivity adı verilen bir etkinliğin, bir NFC ödemesinin sonucunu görüntülediği varsayılmaktadır. Akış şu şekilde ilerlemektedir:

  1. Kullanıcı Hızlı Erişim Cüzdanını açmak için bir hareket gerçekleştirir.
  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ılmazsa Hızlı Erişim Cüzdanı görüntülenmez.
  3. Hızlı Erişim Cüzdan Kullanıcı Arayüzü, QuickAccessWalletService bağlanır ve onWalletCardsRequested çağırır. Bu yöntem, sağlanabilecek kartların sayısı ve boyutu ile ilgili verileri içeren bir istek nesnesini ve bir geri aramayı alır. Geri arama bir arka plan iş parçacığından çağrılabilir.

  4. QuickAccessWalletService göstermek istediği kartları hesaplar ve ardından sağlanan geri aramada onSuccess yöntemini çağırır. Hizmetin bu eylemleri bir arka plan iş parçacığında gerçekleştirmesi önerilir.

  5. Kartlar görüntülenir görüntülenmez Sistem Kullanıcı Arayüzü QuickAccessWalletService onWalletCardSelected çağrılarak ilk kartın seçildiğini bildirir.

    • onWalletCardSelected , kullanıcı her yeni kart seçtiğinde çağrılır.
    • onWalletCardSelected seçili olan kart değişmemiş olsa bile çağrılabilir.
  6. Kullanıcı Hızlı Erişim Cüzdanını kapattığında, Sistem Kullanıcı Arayüzü onWalletDismissed öğesini çağırarak QuickAccessWalletService bildirimde bulunur.

Yukarıdaki örnekte kullanıcı, cüzdan görüntülenirken telefonunu NFC ödeme terminalinin menziline getiriyor. NFC ödemelerini yönetmenin önemli bir bileşeni, NFC okuyucusu tarafından sağlanan APDU'ları işlemek için uygulanması gereken HostApduService (daha fazla bilgi için bkz. Ana bilgisayar tabanlı kart emülasyonu ). Ödeme uygulamasının, NFC terminaliyle etkileşimin ilerlemesini ve sonucunu görüntülemek için bir etkinlik başlattığı varsayılmaktadır. Ancak Hızlı Erişim Cüzdanı Kullanıcı Arayüzü uygulama penceresinin üstünde görüntülenir; bu, ödeme etkinliğinin Hızlı Erişim Cüzdanı Kullanıcı Arayüzü tarafından gizlendiği anlamına gelir. Bunu düzeltmek için uygulamanın Sistem Kullanıcı Arayüzüne Hızlı Erişim Cüzdanı Kullanıcı Arayüzünün kapatılması gerektiğini bildirmesi gerekir. Bunu, bağlı QuickAccessWalletService bir referans alarak ve sendWalletServiceEvent TYPE_NFC_PAYMENT_STARTED olay türüyle ç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 ayrıntı için QuickAccessWalletService API referansına bakın.

İzinler

QuickAccessWalletService bildirim girişi, Android 11'de sunulan android.permission.BIND_QUICK_ACCESS_WALLET_SERVICE iznini gerektirmelidir. Bu, Sistem Kullanıcı Arayüzü tarafından tutulan imza düzeyinde bir izindir; bu, yalnızca Sistem Kullanıcı Arayüzü işleminin QuickAccessWalletService uygulamalarına bağlanabileceği anlamına gelir. Yandan yüklenen uygulamaların bu izni talep edebileceğini ve Android 10 veya daha düşük sürümleri çalıştıran cihazlarda QuickAccessWalletService verilerine tam erişim sağlayabileceğini unutmayın. Bunu önlemek için hizmetin onCreate 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 kart emülasyonu ödeme hizmetlerini sağlamak için gerekli olanların ötesinde başka hiçbir uygulama iznine gerek yoktur.

Varsayılan NFC ödeme uygulaması QuickAccessWalletService uygulamıyor veya dışa aktarmıyorsa Hızlı Erişim Cüzdanı Kullanıcı Arayüzü görüntülenmez.

Android 12'deki ayarlar

Hızlı Erişim Cüzdanını kilit ekranından etkinleştirmek veya devre dışı bırakmak için kullanıcılar, Ayarlar > Ekran > Kilit ekranı bölümünde Cüzdanı göster seçeneğini kullanabilirler. Gölgedeki cüzdanı devre dışı bırakmak için kullanıcıların onu hızlı ayarlar gölgesinde manuel olarak düzenlemesi gerekir.

Cüzdanı kilit ekranından etkinleştirmek veya devre dışı bırakmak için geçiş yapın

Şekil 5. Ayarlar'daki Kilit ekranı sayfasında cüzdan geçişini göster.

Android 11'deki ayarlar

Kullanıcılar Hızlı Erişim Cüzdanı özelliğini Ayarlar uygulamasından kapatabilirler. Ayarlar sayfası Ayarlar > Sistem > Hareketler > Kartlar ve geçişler bölümünde bulunur.

Hızlı Erişim Cüzdanı özelliğini etkinleştirmek veya devre dışı bırakmak için ayarlar sayfası
Şekil 6. Hızlı Erişim Cüzdanı ö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ündeki başka bir konuma ekleme

Hızlı Erişim Cüzdanı Kullanıcı Arayüzü bir sistem eklentisi olarak oluşturulmuştur. AOSP uygulaması bunu GlobalActionsDialog kullansa da (uzun süreli basıldığında gösterilir), 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);
  }
}

Hızlı Erişim Cüzdan 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ığı ve onPanelShown tarafından döndürülen PanelViewController boş olmadığı kontrol edildikten sonra iletişim kutusu, getPanelContent tarafından sağlanan View kendi View ekler ve sistem olayları için uygun geri çağrılar 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();

Hızlı Erişim Cüzdanını güç menüsünden kaldırmak için QuickAccessWallet hedefini sistem yapısından çıkarın. Hızlı Erişim Cüzdanını güç menüsünden kaldırmak ancak Sistem Kullanıcı Arayüzü tarafından sağlanan farklı bir görünüme eklemek için derleme hedefini ekleyin ve GlobalActionsImpl öğesinden GlobalActionsPanelPlugin referanslarını 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. Hızlı Erişim Cüzdanının kilit ekranında görünürlüğü şu güvenli ayarla sağlanır: LOCKSCREEN_SHOW_WALLET . Bu ayar, Hızlı Erişim Cüzdanı simgesinin kilit ekranının sağ alt kısmında gösterilip gösterilmeyeceğini kontrol eder. Bu ayar varsayılan olarak true değerine ayarlanmıştır ancak kullanıcı tarafından Ayarlar > Ekran > Kilit ekranı > Cüzdanı göster seçeneğinden kapatılabilir.

Android 11

Android 11'de Hızlı Erişim Cüzdanı görünürlüğü iki güvenli ayar tarafından denetlenir: GLOBAL_ACTIONS_PANEL_ENABLED ve GLOBAL_ACTIONS_PANEL_AVAILABLE . AVAILABLE ayarı, özelliğin Ayarlar'dan açılıp kapatılamayacağını kontrol eder. Bu ayar WalletPluginService tarafından true olarak ayarlanır. QuickAccessWallet yapıya dahil değilse ayar false olarak kalır. ENABLED ayarı aynı yerde varsayılan olarak true değerine ayarlanmıştır ancak Ayarlar'dan kullanıcı tarafından kapatılabilir. Varsayılan davranışı değiştirmek için WalletPluginService#enableFeatureInSettings değiştirin.

Doğrulama

Hızlı Erişim Cüzdanı uygulamanızı doğrulamak için CTS ve manuel testler çalıştırın. Eklentide yapılan değişiklikler aynı zamanda dahil edilen robolectric testleri de uygulamalıdır.

CTS testleri

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

Android 12 için manuel testler

Hızlı Erişim Cüzdanının temel özelliklerinin test edilmesi, bir NFC ödeme terminali (gerçek veya sahte) ve QuickAccessWalletService (cüzdan uygulaması) uygulayan bir NFC ödeme uygulaması gerektirir. Test edilmesi gereken temel özellikler şunları içerir: kullanılabilirlik, sıfır durumu, kart seçimi ve kilit ekranı davranışı.

Kullanılabilirlik

  • Varsayılan NFC ödeme uygulaması bu ö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 Hızlı Erişim Cüzdanına kilit ekranından erişilebilir.
  • Varsayılan NFC ödeme uygulaması bu özelliği destekliyorsa ve LOCKSCREEN_SHOW_WALLET ayarı false Hızlı Erişim Cüzdanına kilit ekranından erişilemez.

Sıfır durumu

  • QuickAccessWalletService etkinleştirildiyse ve dışa aktarıldıysa ancak herhangi bir kart sağlamıyorsa, Gölgedeki kutucuk Şekil 7'deki örnekte gösterildiği gibi görünür. Kutucuğa tıklamak, varsayılan NFC ödeme uygulamasını açar.

    Varsayılan NFC ödeme uygulamasını gösteren gölgedeki örnek kutucuk

    Şekil 7. Varsayılan NFC ödeme uygulamasını gösteren gölgedeki örnek kutucuk.

  • Şekil 8'de gösterildiği gibi boş durum görünümüne tıklamak, varsayılan NFC ödeme uygulamasını açar. Bu boş durum görünümü yalnızca kullanıcının cüzdanında bir kart kaldığında, kartı kart detay sayfasından çıkardığında ve ardından cüzdan görünümüne geri döndüğünde görüntülenir.

  • Kilit ekranı cüzdan simgesini gösterir.

Hızlı Erişim Cüzdanındaki boş durum görünümü

Şekil 8. Hızlı Erişim Cüzdanı Arayüzündeki boş durum görünümü.

Sıfır olmayan durum

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

    M-cüzdan uygulamasında bir veya daha fazla kart olduğunda gölgedeki örnek kutucuk

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

  • Döşemeye tıklamak bir kart atlıkarıncasını gösterir.

  • Kilit ekranında Hızlı Erişim Cüzdanını açan bir düğme gösterilir.

    Kartın görüntülendiği Hızlı Erişim Cüzdanı Kullanıcı Arayüzü

    Şekil 10. Kartın görüntülendiği Hızlı Erişim Cüzdanı Kullanıcı Arayüzü.

  • Görüntülenen kart bir NFC ödeme yöntemini temsil ediyorsa, telefonun bir NFC ödeme terminaline tutulması, söz konusu ödeme yönteminin kullanılmasına ve cüzdan görünümünün kapatılmasına neden olur.

  • Görüntülenen bir karta tıklamak o karta ilişkin ayrıntılı etkinliği açar.

  • QuickAccessWalletService tarafından birden fazla kart sağlanırsa kullanıcı kartlar arasında geçiş yapabilir.

  • Taşma menüsü bir giriş içerir: 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, varsayılan ödeme uygulamasında kart yoksa kart ekle veya varsayılan ödeme uygulamasında kartlar varsa kullanmak için kilidi aç açıklamasıyla birlikte görünür.
  • Telefon kilitliyse, kilit ekranındaki cüzdan görünürlüğü, Ayarlar'da kontrol edilen Secure.LOCKSCREEN_SHOW_WALLET ayarı tarafından kontrol edilir.
  • Telefon kilitliyse, LOCKSCREEN_SHOW_WALLET false ve varsayılan NFC ödeme uygulamasında kart yoksa, cüzdan kilit ekranında görüntülenmez.
  • Telefon kilitliyse LOCKSCREEN_SHOW_WALLET true olur ve varsayılan NFC ödeme uygulamasında kart yoksa, cüzdan kilit ekranında görüntülenmez.
  • Telefon kilitliyse, LOCKSCREEN_SHOW_WALLET true ve varsayılan NFC ödeme uygulamasında kartlar varsa, cüzdan kilit ekranında görüntülenir.
  • M-cüzdan kilit ekranında görüntülenirken telefonun kilidinin açılması, kartların yeniden sorgulanmasına neden olur ve bu da farklı kart içeriğine yol açabilir.

Erişilebilirlik testleri

  • Talkback kullanıcıları, sola ve sağa kaydırarak ve kartların içerik açıklamalarını dinleyerek cüzdan görünümünde gezinebilirler.
  • Talkback etkinken sola ve sağa kaydırmak, sırayla her kartı seçer. Talkback kullanıcıları, bir NFC ödeme terminalinde bir NFC ödeme yöntemi seçip kullanabilir.

Android 11 için manuel testler

Hızlı Erişim Cüzdanının temel özelliklerinin test edilmesi, bir NFC ödeme terminali (gerçek veya sahte) ve QuickAccessWalletService (cüzdan uygulaması) uygulayan bir NFC ödeme uygulaması gerektirir. 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 ve varsayılan NFC ödeme uygulaması bu özelliği destekliyorsa Hızlı Erişim Cüzdanına erişilebilir.
  • GLOBAL_ACTIONS_PANEL_ENABLED ayarı false ve varsayılan NFC ödeme uygulaması bu özelliği destekliyorsa Hızlı Erişim Cüzdanına erişilemez .
  • GLOBAL_ACTIONS_PANEL_ENABLED ayarı true ve varsayılan NFC ödeme uygulaması bu özelliği desteklemiyorsa Hızlı Erişim Cüzdanına erişilemez .
  • GLOBAL_ACTIONS_PANEL_ENABLED ayarı false ve varsayılan NFC ödeme uygulaması bu özelliği desteklemiyorsa Hızlı Erişim Cüzdanına erişilemez .

Sıfır durumu

  • QuickAccessWalletService etkinleştirilmiş ve dışa aktarılmışsa ancak herhangi bir kart sağlamıyorsa Hızlı Erişim Cüzdanı Kullanıcı Arayüzü boş durum görünümünü görüntüler.
  • Boş durum görünümüne tıklamak cüzdan uygulamasını açar.

    Hızlı Erişim Cüzdanı kullanıcı arayüzünde boş durum görünümü
    Şekil 11. Hızlı Erişim Cüzdanı Arayüzündeki boş durum görünümü.

Sıfır olmayan durum

  • M-cüzdan uygulaması bir veya daha fazla kart sağlıyorsa kartlar Hızlı Erişim Cüzdan Kullanıcı Arayüzü'nde görüntülenir.

    Kartın görüntülendiği Hızlı Erişim Cüzdanı Kullanıcı Arayüzü
    Şekil 12. Bir kartın görüntülendiği Hızlı Erişim Cüzdanı Kullanıcı Arayüzü.
  • Görüntülenen kart bir NFC ödeme yöntemini temsil ediyorsa, telefonun bir NFC ödeme terminaline tutulması, söz konusu ödeme yönteminin kullanılmasına ve cüzdan görünümünün kapatılmasına neden olur.

  • Görüntülenen bir karta tıklandığında cüzdan görünümü kapatılır ve o karta ilişkin ayrıntılı etkinlik açılır.

  • QuickAccessWalletService tarafından birden fazla kart sağlanırsa kullanıcı kartlar arasında geçiş yapabilir.

  • Taşma menüsü iki giriş içerir: biri cüzdan uygulamasını açar, diğeri Ayarlar'da Kartları ve geçiş kartlarını göster ekranını açar.

Kilit durumu testleri

  • Telefon kilitliyse cüzdanın görünürlüğü, Ayarlar'dan kontrol edilebilen Settings.Secure.POWER_MENU_LOCK_SHOW_CONTENT ayarıyla kontrol edilir.
  • Telefon kilitliyse ve POWER_MENU_LOCK_SHOW_CONTENT false ise cüzdan görüntülenmez.
  • Telefon kilitliyse ve POWER_MENU_LOCK_SHOW_CONTENT true ise cüzdan görüntülenir.
  • M-cüzdan kilit ekranında görüntülenirken telefonun kilidinin açılması, kartların yeniden sorgulanmasına neden olur ve bu da farklı kart içeriğine neden olabilir.

Erişilebilirlik testleri

  • TalkBack kullanıcıları, sola ve sağa kaydırarak ve kartların içerik açıklamalarını dinleyerek cüzdan görünümünde gezinebilirler.
  • TalkBack etkinken sola ve sağa kaydırmak, sırayla her kartı seçer. TalkBack kullanıcıları, bir NFC ödeme terminalinde bir NFC ödeme yöntemi seçip kullanabilir.