Cüzdan'a Hızlı Erişim

Android 11'de kullanıma sunulan 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. NFC terminalinde işlem yapmadan önce uygun ödeme yöntemini seçme ve yaklaşan etkinlikler için uçuşlara ve diğer biletlere hızlıca erişme, bu özelliğin başlıca kullanım alanları arasındadır.

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ölgeden kullanılabilir.

Gölgedeki Hızlı Erişim Cüzdan özelliği
Şekil 1. Hızlı Erişim Cüzdan özelliği (cihaz kilitli).
Gölgedeki 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 ö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 öğesine bağlanır. Bu nedenle, cihazın NFC ana makine tabanlı kart emülasyonunu (HCE) de desteklemesi gerekir.

Özelliğe genel bakış

Hızlı erişim Cüzdan'ı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 bölümünde bulunur. Android 11'de, platform/packages/apps/QuickAccessWallet adresinde bulunan Cüzdan kullanıcı arayüzü yüklenmeli 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ı yükleyebilir ancak güç menüsünde yalnızca varsayılan NFC ödeme uygulaması kartları gösterebilir. Başlangıçta hangi NFC ödeme uygulamasının varsayılan olarak ayarlanacağını belirtebilirsiniz 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 olur (CardEmulationManager bölümüne bakın).

Uygulama

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

Yalnızca sistem kullanıcı arayüzünün QuickAccessWalletService'e bağlanabilmesi için NFC ödeme uygulamasının android.permission.BIND_QUICK_ACCESS_WALLET_SERVICE iznini alması gerekir. Bu iznin zorunlu kılınması, yalnızca sistem kullanıcı arayüzünün QuickAccessWalletService'e 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'ü 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örüntülemek için bir etkinlik başlatırsa bağlı QuickAccessWalletService'a referans almayı da denemelidir ve TYPE_NFC_PAYMENT_STARTED etkinlik türüyle QuickAccessWalletService#sendEvent'yi çağırmalıdır. Bu işlem, Hızlı Erişim Cüzdan kullanıcı arayüzünün kapatılmasına neden olur ve böylece kullanıcının ödeme etkinliğini engellenmeden görmesine olanak tanır.

QuickAccessWalletService'ü uygulamayla ilgili ek dokümanlar 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

Hızlı Erişim Cüzdanı'nı Android 11'de güç menüsünden kullanılacak şekilde yapılandırmak için QuickAccessWallet hedefini derlemeye ekleyin ve aşağıdaki kod örneğinde kalın olarak gösterilen 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ı, Hızlı Erişim Cüzdanı'na kart sağlamak için QuickAccessWalletService öğesini göstermelidir. Varsayılan NFC ödeme uygulaması bu hizmeti dışa aktarmazsa cüzdan kullanıcı arayüzü gizlenir.

QuickAccessWalletService uygulama ayrıntıları

QuickAccessWalletService sınıfında uygulanması gereken üç soyut yöntem vardır: onWalletCardsRequested, onWalletCardSelected ve onWalletDismissed. Aşağıdaki ardışık düzen şemasında, NFC ödemesinden hemen önce Hızlı Erişim Cüzdanı'nın görüntülendiği bir çağrı dizisi gösterilmektedir.

Hızlı Erişim Cüzdan sekans diyagramı

Hızlı Erişim Cüzdan&#39;ı görüntülendiğinde örnek çağrı 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üntülemelerinin ardından NFC ödemesi yapılmaz ancak yukarıdaki Şekil 4'te QuickAccessWalletService'ı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 depolandığı 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ı, Hızlı Erişim Cüzdanı'nı açmak 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ıdır), varsayılan NFC ödeme uygulamasının QuickAccessWalletService'yi 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österilmez.
  3. Hızlı Erişim Cüzdan kullanıcı arayüzü, QuickAccessWalletService öğesine bağlanır ve onWalletCardsRequested öğesini çağırır. Bu yöntem, sağlanabilecek kartların sayısı ve boyutu ile ilgili verileri ve bir geri çağırma işlevini içeren bir istek nesnesi alır. Geri çağırma işlevi, arka plan iş parçacığında çağrılabilir.

  4. QuickAccessWalletService, göstermek istediği kartları hesaplar ve ardından sağlanan geri çağırma işlevinde onSuccess yöntemini çağırır. Hizmetin bu işlemleri 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ü, onWalletCardSelected çağrısı yaparak QuickAccessWalletService'ü ilk kartın seçildiğini bildirir.

    • onWalletCardSelected, kullanıcı yeni bir kart seçtiğinde çağrılır.
    • onWalletCardSelected, seçili 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 işlevini çağırarak QuickAccessWalletService'ü bilgilendirir.

Yukarıdaki örnekte, kullanıcı cüzdan gösterilirken telefonu bir NFC ödeme terminalinin kapsama alanına getiriyor. NFC ödemelerini işlemenin önemli bir bileşeni HostApduService'tür. NFC okuyucu tarafından sağlanan APDU'ları işlemek için HostApduService uygulanmalıdır (daha fazla bilgi için Ana makineye dayalı kart taklidi bölümüne bakın). Ödeme uygulamasının, NFC terminaliyle etkileşimin ilerleme durumunu ve sonucunu görüntülemek için bir etkinlik başlattığı varsayılır. Ancak Hızlı Erişim Cüzdan kullanıcı arayüzü, uygulama penceresinin üst kısmında gösterilir. Bu nedenle, ödeme etkinliği Hızlı Erişim Cüzdan kullanıcı arayüzü tarafından gizlenir. Bu sorunu 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'e referans alarak ve sendWalletServiceEvent'u TYPE_NFC_PAYMENT_STARTED etkinlik 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 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 Kullanıcı Arayüzü tarafından tutulan bir imza düzeyinde izindir. Diğer bir deyişle, yalnızca Sistem Kullanıcı Arayüzü işlemi QuickAccessWalletService uygulamalarının bağlamasını yapabilir. Yandan yüklenen uygulamaların bu izne sahip olabileceğini ve Android 10 veya önceki sürümleri çalıştıran cihazlardaki QuickAccessWalletService verilerine tam erişim elde edebileceğini unutmayın. Bunu önlemek için hizmetin onCreate'te 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 gerekenler dışında başka uygulama izni gerekmez.

Varsayılan NFC ödeme uygulaması QuickAccessWalletService'yi uygulamaz veya dışa aktarmazsa Hızlı Erişim Cüzdan kullanıcı arayüzü gösterilmez.

Android 12'deki ayarlar

Kullanıcılar, kilit ekranından Hızlı Erişim Cüzdanı'nı etkinleştirmek veya devre dışı bırakmak için Ayarlar > Ekran > Kilit ekranı bölümündeki Cüzdanı göster açma/kapatma düğmesini kullanabilir. Cihazda Cüzdan'ı devre dışı bırakmak için kullanıcıların hızlı ayarlar gölgesinde Cüzdan'ı 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'ı gösterme düğmesini etkinleştirin.

Android 11'de ayarlar

Kullanıcılar, Ayarlar uygulamasından Hızlı Erişim Cüzdan özelliğini kapatabilir. Ayarlar sayfasına Ayarlar > Sistem > Hareketler > Kartlar ve kartlar bölümünden ulaşabilirsiniz.

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

Sistem kullanıcı arayüzünde Hızlı Erişim Cüzdan görünümünü başka bir yere ekleme

Hızlı Erişim Cüzdan kullanıcı arayüzü, sistem eklentisi olarak tasarlanmıştır. AOSP uygulaması bu özelliği GlobalActionsDialog (uzun güç düğmesi basılıyken gösterilir) için kullansa 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);
  }
}

Hızlı Erişim Cüzdan kullanıcı arayüzü, GlobalActionsPanelPlugin ve PanelViewController'i 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();

Sohbet, eklentinin null olmadığını ve onPanelShown tarafından döndürülen PanelViewController değerinin null olmadığını kontrol ettikten sonra getPanelContent tarafından sağlanan View değerini kendi View değerine ekler ve sistem etkinlikleri için uygun geri çağırma işlevleri 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 derlemesinden çıkarın. Hızlı Erişim Cüzdanı'nı güç menüsünden kaldırmak ancak farklı bir sistem kullanıcı arayüzü tarafından sağlanan görünüme eklemek için derleme hedefini ekleyin ve GlobalActionsPanelPlugin referanslarını 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ı, hızlı ayarlar gölgesinde her zaman görünür. Kilit ekranında Hızlı Erişim Cüzdan'ın görünürlüğü aşağıdaki güvenli ayar tarafından kontrol edilir: LOCKSCREEN_SHOW_WALLET. Bu ayar, kilit ekranının sağ alt kısmında Hızlı Erişim Cüzdan simgesi gösterilip gösterilmeyeceğini kontrol eder. Bu ayar varsayılan olarak true olarak ayarlanmıştı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 görünürlüğü iki güvenli ayar tarafından kontrol edilir: GLOBAL_ACTIONS_PANEL_ENABLED ve GLOBAL_ACTIONS_PANEL_AVAILABLE. AVAILABLE ayarı, özelliğin Ayarlar'da etkinleştirilip devre dışı bırakılıp bırakılamayacağını kontrol eder. Bu ayar, WalletPluginService tarafından true olarak belirlenir. 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 devre dışı bırakılabilir. Varsayılan davranışı değiştirmek için WalletPluginService#enableFeatureInSettings değerini değiştirin.

Doğrulama

Hızlı Erişim Cüzdanı'nı uygulamanızı doğrulamak için CTS ve manuel testler ç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 adresindeki 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 ödeme terminali (gerçek veya sahte) ve QuickAccessWalletService'ü uygulayan bir NFC ödeme uygulaması (cüzdan uygulaması) gerekir. Test edilmesi gereken temel özellikler arasında kullanılabilirlik, sıfır durum, kart seçimi ve kilit ekranı davranışı yer alır.

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

Sıfır durumu

  • QuickAccessWalletService etkinleştirilir ve dışa aktarılır ancak kart sağlamazsa Gölge'deki karo Şekil 7'deki örnekte gösterildiği gibi görünür. Kartı tıkladığınızda varsayılan NFC ödeme uygulaması açılır.

    Varsayılan NFC ödeme uygulamasını gösteren gölgeli örnek kart

    Şekil 7. Varsayılan NFC ödeme uygulamasını gösteren gölgeli örnek kart.

  • Şekil 8'de gösterilen boş durum görünümü tıklandığında 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ı kalmışsa, kartı kart ayrıntıları sayfasından kaldırdıktan sonra cüzdan görünümüne geri döndüğünde gösterilir.

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

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

Şekil 8. 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 gölgeli karo Şekil 9'da gösterildiği gibi görünür.

    Cüzdan uygulamasında bir veya daha fazla kart olduğunda koyu renkli örnek kart

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

  • Kartı tıkladığınızda bir kart bandı gösterilir.

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

    Kartın gösterildiği Hızlı Erişim Cüzdan kullanıcı arayüzü

    Şekil 10. Kartın gösterildiği Hızlı Erişim Cüzdan kullanıcı arayüzü.

  • Gösterilen kart bir NFC ödeme yöntemini temsil ediyorsa telefonu NFC ödeme terminaline yaklaştırmak, söz konusu ödeme yönteminin kullanılmasını sağlar 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 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ç açıklaması gösterilir.
  • 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 ise ve varsayılan NFC ödeme uygulamasında kart yoksa kilit ekranında cüzdan gösterilmez.
  • Telefon kilitliyse, LOCKSCREEN_SHOW_WALLET true ise ve varsayılan NFC ödeme uygulamasında kart yoksa kilit ekranında cüzdan gösterilmez.
  • Telefon kilitliyse, LOCKSCREEN_SHOW_WALLET true ise ve varsayılan NFC ödeme uygulamasında kart varsa kilit ekranında cüzdan gösterilir.
  • Kilit ekranında cüzdan gösterilirken telefonun kilidinin açılması, kartların yeniden istenmesine neden olur. Bu da farklı kart içerikleriyle sonuçlanabilir.

Erişilebilirlik testleri

  • Sesli Beyan 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ı sırayla seçebilirsiniz. Talkback kullanıcıları, NFC ödeme terminalinde NFC ödeme yöntemi 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 ödeme terminali (gerçek veya sahte) ve QuickAccessWalletService'ü uygulayan bir NFC ödeme uygulaması (cüzdan uygulaması) gerekir. Test edilmesi gereken temel özellikler arasında kullanılabilirlik, sıfır durum, 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 Hızlı Erişim Cüzdan'a erişilebilir.
  • GLOBAL_ACTIONS_PANEL_ENABLED ayarı false ise ve varsayılan NFC ödeme uygulaması özelliği destekliyorsa Hızlı Erişim Cüzdanı'na erişim sağlanamaz.
  • GLOBAL_ACTIONS_PANEL_ENABLED ayarı true ise ve varsayılan NFC ödeme uygulaması bu özelliği desteklemiyorsa Hızlı Erişim Cüzdanı'na erişim sağlanamaz.
  • GLOBAL_ACTIONS_PANEL_ENABLED ayarı false ise ve varsayılan NFC ödeme uygulaması bu özelliği desteklemiyorsa Hızlı Erişim Cüzdanı'na erişim sağlanamaz.

Sıfır durumu

  • QuickAccessWalletService etkinleştirilip dışa aktarıldıysa ancak kart sağlamazsa Hızlı Erişim Cüzdan 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.

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

Sıfır olmayan durum

  • Cüzdan uygulaması bir veya daha fazla kart sağlıyorsa kartlar Hızlı Erişim Cüzdan kullanıcı arayüzünde gösterilir.

    Kartın gösterildiği Hızlı Erişim Cüzdan kullanıcı arayüzü
    Şekil 12. Kartın gösterildiği Hızlı Erişim Cüzdan kullanıcı arayüzü.
  • Gösterilen kart bir NFC ödeme yöntemini temsil ediyorsa telefonu NFC ödeme terminaline yaklaştırmak, söz konusu ödeme yönteminin kullanılmasını sağlar ve cüzdan görünümü kapatılır.

  • Gösterilen bir kartı tıkladığınızda cüzdan görünümü kapatılır ve ilgili 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.

  • Aşırı dolgu menüsünde iki giriş bulunur: biri Cüzdan uygulamasını açan, diğeri ise Ayarlar'daki Kartları ve kartları göster ekranını açan giriş.

Kilit durumu testleri

  • Telefon kilitliyse cüzdan görünürlüğü, Ayarlar'da 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österilmez.
  • Telefon kilitliyse ve POWER_MENU_LOCK_SHOW_CONTENT true ise cüzdan gösterilir.
  • Kilit ekranında cüzdan gösterilirken telefonun kilidinin açılması, kartların yeniden sorgulanması sonucu farklı kart içeriklerinin gösterilmesine neden olabilir.

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 açıkken sola ve sağa kaydırarak kartları sırayla seçebilirsiniz. TalkBack kullanıcıları, NFC ödeme terminalinde NFC ödeme yöntemi seçip kullanabilir.