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ö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 ö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üklü ve beyaz listeye eklenmiş olmalıdır.

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.

QuickAccessWalletService öğesine yalnızca Sistem kullanıcı arayüzünün bağlanabilmesini sağlamak için NFC ödeme uygulamasının android.permission.BIND_QUICK_ACCESS_WALLET_SERVICE iznini gerektirmesi 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 gerçekleştirmeye başlar ve sonuç olarak ödemenin ilerlemesini ve sonucunu gösteren bir etkinlik başlatırsa aynı zamanda bağlı QuickAccessWalletService için bir referans almaya ve etkinlik türüyle QuickAccessWalletService#sendEvent aramasını yapmaya çalışmalıdır.TYPE_NFC_PAYMENT_STARTED 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 kullanıcı arayüzünü Hızlı Erişim'i 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, uygulanması gereken üç soyut yöntem içeriyor: 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ış şöyle 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 dosyasını 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österilir görüntülemez Sistem Kullanıcı Arayüzü, QuickAccessWalletService adlı kullanıcıya onWalletCardSelected çağrısı yapılarak ilk kartın seçildiğini bildirir.

    • Kullanıcı her yeni kart seçtiğinde onWalletCardSelected çağrılır.
    • Şu anda seçili olan kart değişmemiş olsa bile onWalletCardSelected ç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örüntülenir. Bu, ödeme etkinliğinin Cüzdan Kullanıcı Arayüzü tarafından gizlendiği anlamına gelir. 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. Yani yalnızca Sistem Kullanıcı Arayüzü işlemi QuickAccessWalletService uygulamalarının bağlamasını yapabilir. Başka cihazdan yüklenen uygulamaların bu izni talep edebileceğini ve Android 10 veya önceki sürümleri çalıştıran cihazlarda QuickAccessWalletService verilerine tam erişim elde edebileceğini unutmayın. Bunu önlemek için hizmetin onCreate'teki 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ülasyon ödeme hizmetleri sağlamak için gerekli olanlar dışında başka uygulama izinleri 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 açma/kapatma düğmesini gösterin.

Android 11'de ayarlar

Kullanıcılar, Ayarlar uygulamasından Hızlı Erişim Cüzdan özelliğini devre dışı bırakabilir. 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ü bir sistem eklentisi olarak oluşturulmuştur. AOSP uygulamasında bu özellik GlobalActionsDialog (uzun güç düğmesi basılıyken gösterilir) için kullanılsa 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 aşağıdakileri 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 onPanelShown tarafından döndürülen PanelViewController değerinin null olmadığını kontrol ettikten sonra iletişim kutusu, getPanelContent tarafından sağlanan View öğesini kendi View öğesine 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'ı 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 üzerinden 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ı, hızlı ayarlar gölgesinde her zaman görünür. Hızlı Erişim Cüzdan'ın kilit ekranında görünürlüğü şu güvenli ayar ile korunur: 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 ayarlanır. QuickAccessWallet derlemeye dahil edilmezse ayar false olarak kalır. ENABLED ayarı, aynı yerde varsayılan olarak true değerine ayarlıdır ancak kullanıcı tarafından Ayarlar'dan 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 robolektrik testleri de uygulamalı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 durumu, kart seçimi ve kilit ekranı davranışı bulunur.

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ı bu özelliği destekliyorsa Hızlı Erişim Cüzdan'a hızlı ayarlar gölgesinden erişilebilir.
  • Varsayılan NFC ödeme uygulaması bu özelliği destekliyorsa ve LOCKSCREEN_SHOW_WALLET ayarı true ise Cüzdan'a Hızlı Erişim'e kilit ekranından 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 herhangi bir kart sağlanmazsa Gölgedeki kart, Şekil 7'deki örnekte gösterildiği gibi görünür. Kutuya 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 örnek kutucuk.

  • Ş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 gölgedeki örnek karo

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

  • Karoyu tıkladığınızda kart rulosu 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österilen 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ş vardır: 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

  • 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 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'a erişilemez.
  • 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ştirilirse ve dışa aktarılırsa ancak herhangi bir kart sağlamıyorsa Hızlı Erişim Cüzdan kullanıcı arayüzünde boş durum görünümü görüntülenir.
  • 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. Bir 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: Cüzdan uygulamasını açan ve Ayarlar'daki Kartları ve kartları göster ekranını açan girişler.

Kilitleme 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çerikleriyle karşılaşılmasına 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 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.