Hızlı Erişim Cüzdanı

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

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ö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 kilidi açık).

Android 11'de özellik, Şekil 3'te gösterildiği gibi güç menüsünden kullanı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 kullanmak için cihazınızda NFC olmalıdır. Bu özellik, varsayılan NFC ödeme uygulamasının QuickAccessWalletService bağlanır; bu, cihazın NFC ana bilgisayar tabanlı kart öykünmesini (HCE) de desteklemesi gerektiği anlamına gelir.

Özelliğe 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ı Arabirimi Sistem Kullanıcı Arabiriminde çalışır ve frameworks/base/packages/SystemUI/src/com/android/systemui/wallet . Android 11'de platform/packages/apps/QuickAccessWallet bulunan Cüzdan Kullanıcı Arayüzü yüklenmeli ve beyaz listeye alınmalı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 kartları yalnızca varsayılan NFC ödeme uygulaması 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, otomatik olarak varsayılan olur (bkz. CardEmulationManager ).

uygulama

Quick Access Wallet UI'ye kart sağlamak için NFC ödeme uygulamaları QuickAccessWalletService uygulamalıdır. Ödeme uygulamaları, hizmetin reklamını yapan bir bildirim girişi içermelidir.

Yalnızca Sistem Kullanıcı Arabiriminin QuickAccessWalletService bağlanabilmesini sağlamak için NFC ödeme uygulamasının android.permission.BIND_QUICK_ACCESS_WALLET_SERVICE iznini gerektirmesi gerekir. Bu iznin gerekmesi, yalnızca Sistem Kullanıcı Arabiriminin 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>

Cüzdan hakkında ek bilgiler bağlantılı XML dosyasında bulunur:

<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ı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 işlemeye başlarsa ve sonuç olarak, ödemenin ilerlemesini ve sonucunu görüntülemek için bir etkinlik başlatırsa, bağlı QuickAccessWalletService bir referans almaya çalışmalı ve TYPE_NFC_PAYMENT_STARTED olay türüyle TYPE_NFC_PAYMENT_STARTED QuickAccessWalletService#sendEvent sendEvent'i çağırmalıdır. . Bu, 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 engelsiz bir şekilde görmesine olanak tanır.

TestQuickAccessWalletService QuickAccessWalletService QuickAccessWalletService bakın.

Android 11'de Hızlı Erişim Cüzdan 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, derlemeye QuickAccessWallet hedefini ekleyin ve aşağıdaki kod örneğinde koyu renkli satırı overlay/frameworks/base/packages/SystemUI/res/values/config.xml 'e 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ı, Quick Access Wallet'a kart sağlamak için QuickAccessWalletService 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ö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 arama sırasını gösterir.

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ümlerini bir NFC ödemesi takip etmez, ancak yukarıdaki Şekil 4, QuickAccessWalletService tüm özelliklerini gösterir. Bu örnekte, Hızlı Erişim Cüzdanı kartı sağlayıcısı, mavi ile belirtilen öğeleri uygular. Ödeme kartlarının cihazda bir veri tabanında saklandığı ve PaymentCardManager adlı bir arayüz üzerinden erişildiği varsayılmaktadır. Ayrıca PaymentActivity adlı bir etkinliğin bir NFC ödemesinin sonucunu gösterdiği varsayılır. Akış şu şekilde ilerler:

  1. Kullanıcı, Hızlı Erişim Cüzdanını getirmek 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ü onWalletCardsRequested QuickAccessWalletService . Bu yöntem, sağlanabilecek kartların sayısı ve boyutu hakkında veri içeren bir istek nesnesi ve bir geri arama 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 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 ilk kartın onWalletCardSelected çağrılarak 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ü QuickAccessWalletService öğesini çağırarak onWalletDismissed bilgilendirir.

Yukarıdaki örnekte, kullanıcı, cüzdan görüntülenirken telefonu bir NFC ödeme terminalinin kapsama alanına getirir. NFC ödemelerini ele HostApduService önemli bir bileşeni, NFC okuyucu tarafından sağlanan APDU'ları işlemek için uygulanması gereken HostApduService'dir (daha fazla bilgi için, bkz. Ana Bilgisayar tabanlı kart öykünmesi ). Ödeme uygulamasının, NFC terminaliyle etkileşimin ilerlemesini 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ü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 uygulama, Sistem Kullanıcı Arayüzüne Hızlı Erişim Cüzdan Kullanıcı Arayüzü'nün kapatılması gerektiğini bildirmelidir. Bunu, bağlı QuickAccessWalletService bir başvuru alarak ve sendWalletServiceEvent olay türüyle TYPE_NFC_PAYMENT_STARTED ç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.

izinler

QuickAccessWalletService için bildirim girişi, Android 11'de tanıtılan 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 eski 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 öykünmesi ödeme hizmetleri sağlamak için gerekli olanların ötesinde başka hiçbir uygulama izni gerekli değildir.

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ündeki Cüzdanı göster geçişini kullanabilir. Cüzdanı gölgede devre dışı bırakmak için, kullanıcıların hızlı ayarlar gölgesinde manuel olarak düzenlemesi gerekir.

Kilit ekranından cüzdanı 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österin.

Android 11'deki ayarlar

Kullanıcılar, Ayarlar uygulamasından Hızlı Erişim Cüzdanı özelliğini kapatabilir. 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

Sistem Kullanıcı Arayüzündeki başka bir konuma Hızlı Erişim Cüzdanı görünümü ekleme

Hızlı Erişim Cüzdan Kullanıcı Arayüzü , bir sistem eklentisi olarak oluşturulmuştur. AOSP uygulaması bunu GlobalActionsDialog (uzun güç 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ı Arabirimi , GlobalActionsPanelPlugin ve PanelViewController uygular. GlobalActionsDialog , com.android.systemui.Dependency kullanarak cüzdan eklentisinin bir örneğini alır:

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

Eklentinin boş olmadığını ve onPanelShown tarafından döndürülen PanelViewController boş olmadığını kontrol ettikten sonra, iletişim kutusu getPanelContent tarafından sağlanan View kendi View ekler ve sistem olayları için uygun geri aramalar 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 sistem yapısından QuickAccessWallet hedefini çıkarın. Hızlı Erişim Cüzdanını güç menüsünden kaldırmak, ancak bunu sağlanan farklı bir Sistem Kullanıcı Arayüzü görünümüne eklemek için, oluşturma hedefini ekleyin ve GlobalActionsPanelPlugin'e yapılan referansları GlobalActionsPanelPlugin GlobalActionsImpl .

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 ayar ile sağlanır: 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 olarak ayarlanır, ancak kullanıcı tarafından Ayarlar > Ekran > Kilit ekranı > Cüzdanı göster bölümünden kapatılabilir.

Android 11

Android 11'de Hızlı Erişim Cüzdanı görünürlüğü iki güvenli ayar tarafından sağlanır: GLOBAL_ACTIONS_PANEL_ENABLED ve GLOBAL_ACTIONS_PANEL_AVAILABLE . AVAILABLE ayarı, özelliğin Ayarlar'da 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 olarak ayarlanır, ancak kullanıcı tarafından Ayarlar'dan 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 testleri çalıştırın. Eklentide yapılan değişiklikler, dahil edilen robotik 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 özelliklerini test etmek için bir NFC ödeme terminali (gerçek veya sahte) ve QuickAccessWalletService (cüzdan uygulaması) uygulayan bir NFC ödeme uygulaması gerekir. Test edilmesi gereken temel özellikler şunlardır: kullanılabilirlik, sıfır durum, kart seçimi ve kilit ekranı davranışı.

kullanılabilirlik

  • Varsayılan NFC ödeme uygulaması özelliği desteklemiyorsa, Hızlı Erişim Cüzdanına ne hızlı ayarlardan ne de kilit ekranından erişilebilir.
  • 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ı ö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ştirilmiş ve dışa aktarılmışsa ancak herhangi bir kart sağlamıyorsa, Shade'deki döşeme Şekil 7'deki örnekte gösterildiği gibi görünür. Döşemeye tıklamak varsayılan NFC ödeme uygulamasını açar.

    Varsayılan NFC ödeme uygulamasını gösteren gölgede ö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üzdanda bir kartı kaldığında görüntülenir, kartı kart detay sayfasından çıkarır ve ardından cüzdan görünümüne geri döner.

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

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

Şekil 8. Hızlı Erişim Cüzdanı Kullanıcı 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.

    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 kutucuğu.

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

  • Kilit ekranı, Hızlı Erişim Cüzdanını açan bir düğmeyi gösterir.

    Bir kart görüntülenen Hızlı Erişim Cüzdan Kullanıcı Arayüzü

    Şekil 10. 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, telefonu bir NFC ödeme terminalinde tutmak, o ö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 kart için ayrıntılı aktiviteyi açar.

  • QuickAccessWalletService tarafından birden fazla kart sağlandıysa, 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, 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 cüzdan hızlı ayarlar gölgesinde görünür.
  • Telefon kilitliyse, kilit ekranında 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 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.
  • Cüzdan kilit ekranında görüntülenirken telefonun kilidinin açılması, kartların talep edilmesine 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 gezinebilir.
  • 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çebilir ve 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 (cüzdan uygulaması) uygulayan bir NFC ödeme uygulaması gerekir. Test edilmesi gereken temel özellikler arasında kullanılabilirlik, sıfır durum, kart seçimi ve kilit ekranı davranışı bulunur.

kullanılabilirlik

  • GLOBAL_ACTIONS_PANEL_ENABLED ayarı true ve varsayılan NFC ödeme uygulaması özelliği destekliyorsa, Hızlı Erişim Cüzdanına erişilebilir.
  • GLOBAL_ACTIONS_PANEL_ENABLED ayarı false ve varsayılan NFC ödeme uygulaması özelliği destekliyorsa Hızlı Erişim Cüzdanına erişilemez .
  • GLOBAL_ACTIONS_PANEL_ENABLED ayarı true ve varsayılan NFC ödeme uygulaması özelliği desteklemiyorsa Hızlı Erişim Cüzdanına erişilemez .
  • GLOBAL_ACTIONS_PANEL_ENABLED ayarı false ve varsayılan NFC ödeme uygulaması özelliği desteklemiyorsa Hızlı Erişim Cüzdanına erişilemez .

sıfır durumu

  • QuickAccessWalletService etkinleştirilir ve dışa aktarılırsa 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ündeki boş durum görünümü
    Şekil 11. Hızlı Erişim Cüzdanı Kullanıcı 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 Arayüzünde görüntülenir.

    Bir kart görüntülenen 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, telefonu bir NFC ödeme terminalinde tutmak, o ö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, cüzdan görünümünü kapatır ve o kart için ayrıntılı aktiviteyi açar.

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

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

Kilit durumu testleri

  • Telefon kilitliyse, cüzdan görünürlüğü Ayarlar'da kontrol edilebilen Settings.Secure.POWER_MENU_LOCK_SHOW_CONTENT ayarı tarafından kontrol edilir.
  • Telefon kilitliyse ve POWER_MENU_LOCK_SHOW_CONTENT false , cüzdan görüntülenmez.
  • Telefon kilitliyse ve POWER_MENU_LOCK_SHOW_CONTENT true , cüzdan görüntülenir.
  • 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 gezinebilir.
  • 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.