Dompet Akses Cepat

Fitur Dompet Akses Cepat, tersedia dari Android 11, memungkinkan pengguna akses kartu pembayaran dan tiket terkait langsung dari menu daya. Penggunaan utama termasuk memilih metode pembayaran yang sesuai sebelum melakukan untuk bertransaksi di terminal NFC dan mengakses tiket pesawat dan kartu lainnya dengan cepat untuk acara mendatang.

Di Android 12 atau yang lebih baru, Dompet Akses Cepat tersedia dari menu bayangan seperti yang ditunjukkan pada Gambar 1 dan Gambar 2.

Fitur Dompet Akses Cepat dalam bayangan
Gambar 1. Fitur Wallet Akses Cepat (perangkat terkunci).
Fitur Dompet Akses Cepat dalam bayangan
Gambar 2. Fitur Wallet Akses Cepat (perangkat tidak terkunci).

Di Android 11, fitur ini tersedia dari menu daya seperti yang ditunjukkan di Gambar 3.

Fitur Wallet Akses Cepat di menu daya
Gambar 3. Fitur Wallet Akses Cepat sedang aktif menu.

Persyaratan

Perangkat Anda harus memiliki NFC untuk menggunakan fitur Dompet Akses Cepat. Fitur terikat ke QuickAccessWalletService aplikasi pembayaran NFC default, yang berarti bahwa perangkat juga harus mendukung NFC emulasi kartu berbasis host (HCE).

Ringkasan fitur

Ada dua bagian dalam {i>Quick Access Wallet<i}: UI {i>Quick Access Wallet<i} penyedia kartu Dompet Akses Cepat.

Di Android 12 atau yang lebih tinggi, UI Wallet berjalan di Sistem UI dan terletak di frameworks/base/packages/SystemUI/src/com/android/systemui/wallet Di beberapa Android 11, UI Wallet, yang berada di platform/packages/apps/QuickAccessWallet, harus diinstal dan diizinkan.

Penyedia kartu Dompet Akses Cepat adalah aplikasi pembayaran NFC default. Pengguna dapat menginstal beberapa aplikasi pembayaran NFC secara bersamaan, tetapi hanya aplikasi default Aplikasi pembayaran NFC dapat menampilkan kartu di menu daya. Anda dapat menentukan NFC aplikasi pembayaran mula-mula disetel sebagai default, namun pengguna dapat memilih aplikasi di Setelan. Jika hanya satu aplikasi pembayaran NFC yang terinstal, aplikasi itu akan menjadi secara otomatis (lihat CardEmulationManager).

Implementasi

Untuk menyediakan kartu ke UI Dompet Akses Cepat, pembayaran NFC aplikasi harus menerapkan QuickAccessWalletService Aplikasi pembayaran harus menyertakan entri manifes yang mengiklankan layanan.

Untuk memastikan bahwa hanya UI Sistem yang dapat mengikat ke QuickAccessWalletService, Aplikasi pembayaran NFC harus mewajibkan Izin android.permission.BIND_QUICK_ACCESS_WALLET_SERVICE. Wajib diisi izin akses memastikan bahwa hanya UI Sistem yang dapat mengikat ke QuickAccessWalletService.

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

Informasi tambahan tentang dompet disertakan dalam file XML yang ditautkan:

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

Selanjutnya, aplikasi pembayaran harus mengimplementasikan QuickAccessWalletService:

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
    }
}

Jika HostApduService mulai menangani transaksi NFC, dan akibatnya, memulai suatu aktivitas untuk menampilkan kemajuan dan hasil pembayaran, coba juga untuk mendapatkan referensi ke QuickAccessWalletService yang terikat dan panggil QuickAccessWalletService#sendEvent dengan jenis peristiwa TYPE_NFC_PAYMENT_STARTED. Hal ini menyebabkan UI Dompet Akses Cepat ditutup, sehingga pengguna dapat melihat aktivitas pembayaran dengan jelas.

Untuk dokumentasi tambahan terkait penerapan QuickAccessWalletService, lihat QuickAccessWalletService dan TestQuickAccessWalletService Uji CTS.

Mengaktifkan UI Wallet Akses Cepat di Android 11

Untuk mengonfigurasi Dompet Akses Cepat agar tersedia dari menu daya di Android 11, sertakan QuickAccessWallet target di build dan aktifkan plugin globalactions.wallet dengan menambahkan baris dalam cetak tebal pada contoh kode di bawah ini ke overlay/frameworks/base/packages/SystemUI/res/values/config.xml.

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

Tentukan aplikasi pembayaran NFC default di file konfigurasi setelan menggunakan def_nfc_payment_component.

Aplikasi pembayaran NFC default harus mengekspos QuickAccessWalletService untuk menyediakan kartu ke Dompet Akses Cepat. Jika aplikasi pembayaran NFC default tidak mengekspor layanan ini, UI dompet disembunyikan.

Detail penerapan QuickAccessWalletService

QuickAccessWalletService memiliki tiga metode abstrak yang harus diimplementasikan: onWalletCardsRequested, onWalletCardSelected, dan onWalletDismissed. Tujuan diagram urutan di bawah ini mengilustrasikan urutan panggilan saat Dompet Akses Cepat dilihat tepat sebelum pembayaran NFC.

Diagram urutan Dompet Akses Cepat

Contoh urutan panggilan saat Dompet Akses Cepat dilihat
Gambar 4. Contoh urutan panggilan saat Dompet Akses Cepat dilihat.

Tidak semua tampilan Quick Access Wallet diikuti dengan pembayaran NFC, tetapi Gambar 4 di atas menggambarkan semua kemampuan QuickAccessWalletService. Dalam contoh ini, kartu {i>Quick Access Wallet<i} penyedia mengimplementasikan elemen yang diuraikan dengan warna biru. Diasumsikan bahwa pembayaran kartu disimpan di perangkat dalam {i>database<i} dan diakses melalui antarmuka bernama PaymentCardManager. Selanjutnya diasumsikan bahwa suatu aktivitas yang disebut PaymentActivity menampilkan hasil pembayaran NFC. Alur berjalan sebagai berikut:

  1. Pengguna melakukan gestur untuk memunculkan Dompet Akses Cepat.
  2. UI Quick Access Wallet (bagian dari UI Sistem) memeriksa paket untuk melihat apakah aplikasi pembayaran NFC default diekspor QuickAccessWalletService.

    • Jika layanan tidak diekspor, Dompet Akses Cepat tidak akan ditampilkan.
  3. UI Wallet Akses Cepat terikat ke QuickAccessWalletService dan memanggil onWalletCardsRequested. Metode ini mengambil objek permintaan berisi data tentang jumlah dan ukuran kartu yang dapat diberikan dan callback. Callback dapat dipanggil dari thread latar belakang.

  4. QuickAccessWalletService menghitung kartu yang ingin ditampilkan, kemudian memanggil metode onSuccess pada callback yang diberikan. Penting disarankan agar layanan melakukan tindakan ini di thread latar belakang.

  5. Segera setelah kartu ditampilkan, UI Sistem memberi tahu QuickAccessWalletService bahwa kartu pertama telah dipilih dengan memanggil onWalletCardSelected.

    • onWalletCardSelected dipanggil setiap kali pengguna memilih kartu baru.
    • onWalletCardSelected mungkin dipanggil meskipun saat ini kartu yang dipilih tidak berubah.
  6. Saat pengguna menutup Dompet Akses Cepat, UI Sistem akan memberi tahu QuickAccessWalletService dengan memanggil onWalletDismissed.

Dalam contoh di atas, pengguna membawa ponsel ke dalam jangkauan pembayaran NFC terminal saat dompet sedang ditampilkan. Komponen utama dalam menangani NFC pembayaran sebesar HostApduService, yang harus diterapkan untuk memproses APDU yang disediakan oleh pembaca NFC (untuk informasi selengkapnya, lihat Emulasi kartu berbasis host). Diasumsikan bahwa aplikasi pembayaran memulai aktivitas untuk menampilkan kemajuan dan hasil interaksi dengan terminal NFC. Namun, tombol Akses Cepat UI Wallet ditampilkan di bagian atas jendela aplikasi, artinya dan aktivitas pembayaran disamarkan oleh UI Quick Access Wallet. Untuk memperbaikinya, aplikasi harus memberi tahu UI Sistem bahwa UI Dompet Akses Cepat harus ditutup. Ini bisa dilakukan dengan mendapatkan referensi ke ikatan QuickAccessWalletService dan memanggil sendWalletServiceEvent dengan peristiwa ketik TYPE_NFC_PAYMENT_STARTED.

Implementasi contoh QuickAccessWalletService

/** 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();
    });
  }
}

Untuk mengetahui detail selengkapnya tentang QuickAccessWalletService, lihat Referensi API QuickAccessWalletService.

Izin

Entri manifes untuk QuickAccessWalletService harus mewajibkan Izin android.permission.BIND_QUICK_ACCESS_WALLET_SERVICE diperkenalkan pada Android 11. Ini adalah izin tingkat tanda tangan yang dimiliki oleh UI Sistem, yang berarti hanya proses UI Sistem yang dapat mengikat implementasi QuickAccessWalletService. Perlu diketahui bahwa aplikasi yang di-sideload dapat mengklaim ini izin dan dapatkan akses penuh ke data QuickAccessWalletService di perangkat menjalankan Android 10 atau lebih rendah. Untuk mencegah hal ini, disarankan layanan periksa versi build di onCreate dan aktifkan layanan hanya di perangkat menjalankan Android 11 dan yang lebih tinggi. Tidak ada izin aplikasi lain selain yang diperlukan untuk memberikan pembayaran emulasi kartu host layanan IT perusahaan mereka.

Jika aplikasi pembayaran NFC default tidak menerapkan atau mengekspor QuickAccessWalletService, UI Wallet Akses Cepat tidak ditampilkan.

Setelan di Android 12

Untuk mengaktifkan atau menonaktifkan Wallet Akses Cepat dari layar kunci, pengguna dapat gunakan tombol Tampilkan wallet di Setelan > Tampilan > Layar kunci. Untuk menonaktifkan dompet di bayangan, pengguna harus mengedit secara manual di menu pengaturan cepat.

Klik tombol untuk mengaktifkan atau menonaktifkan dompet dari layar kunci

Gambar 5. Tampilkan tombol dompet di halaman Layar kunci di Setelan.

Setelan di Android 11

Pengguna dapat menonaktifkan fitur Dompet Akses Cepat dari aplikasi Setelan. Tujuan halaman setelan ditemukan di Setelan > Sistem > Gestur > Kartu & kartu.

Halaman setelan untuk mengaktifkan atau menonaktifkan fitur Dompet Akses Cepat
Gambar 6. Halaman setelan untuk mengaktifkan atau menonaktifkan Fitur Dompet Akses Cepat.

Penyesuaian

Menambahkan tampilan Dompet Akses Cepat ke lokasi lain di UI Sistem

Tujuan UI Wallet Akses Cepat dibangun sebagai plugin sistem. Meskipun implementasi AOSP memanfaatkannya GlobalActionsDialog (ditampilkan saat menekan lama tombol daya), Anda dapat memindahkan fitur ke belakang gestur yang berbeda selama Anda mempertahankan kontrak yang ditentukan oleh antarmuka {i>plugin<i}.

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);
  }
}

Tujuan UI Wallet Akses Cepat mengimplementasikan GlobalActionsPanelPlugin dan PanelViewController. GlobalActionsDialog mendapatkan instance plugin wallet dengan menggunakan com.android.systemui.Dependency:

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

Setelah memeriksa bahwa plugin tidak-null dan PanelViewController yang ditampilkan oleh onPanelShown non-null, dialog akan melampirkan View yang disediakan oleh getPanelContent ke View-nya sendiri dan memberikan callback yang sesuai untuk peristiwa sistem.

// 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();

Untuk menghapus Dompet Akses Cepat dari menu daya, hilangkan QuickAccessWallet target dari build sistem. Untuk menghapus Akses Cepat Wallet dari menu daya tetapi menambahkannya ke tampilan yang disediakan UI Sistem yang berbeda, menyertakan target build dan menghapus referensi ke GlobalActionsPanelPlugin dari GlobalActionsImpl.

Setel konfigurasi default

Android 12

Di Android 12 atau yang lebih tinggi, Dompet Akses Cepat selalu terlihat di menu pengaturan cepat. Visibilitas Akses Cepat Wallet di layar kunci dilindungi oleh setelan aman berikut: LOCKSCREEN_SHOW_WALLET. Setelan ini mengontrol apakah Dompet Akses Cepat ditampilkan di kanan bawah layar kunci. Setelan ini disetel ke true secara default, tetapi dapat dinonaktifkan oleh pengguna di Setelan > Tampilan > Layar kunci > Tampilkan Wallet.

Android 11

Di Android 11, visibilitas Dompet Akses Cepat dibatasi oleh dua setelan aman: GLOBAL_ACTIONS_PANEL_ENABLED dan GLOBAL_ACTIONS_PANEL_AVAILABLE. Tujuan Setelan AVAILABLE mengontrol apakah fitur dapat diaktifkan dan dinonaktifkan di Setelan. Setelan ini disetel ke true oleh WalletPluginService. Jika QuickAccessWallet tidak disertakan dalam build, setelan akan tetap ada false. Setelan ENABLED disetel ke true secara default di tempat yang sama, tetapi dapat dinonaktifkan oleh pengguna di Pengaturan. Untuk mengubah perilaku {i>default<i}, ubah WalletPluginService#enableFeatureInSettings.

Validasi

Untuk memvalidasi penerapan Dompet Akses Cepat, jalankan CTS dan manual pengujian. Perubahan pada plugin juga harus menggunakan uji robolektri.

Uji CTS

Jalankan uji CTS yang berlokasi di cts/tests/quickaccesswallet

Pengujian manual untuk Android 12

Menguji fitur inti Dompet Akses Cepat memerlukan pembayaran NFC terminal (asli atau palsu) dan aplikasi pembayaran NFC yang mengimplementasikan QuickAccessWalletService (aplikasi dompet). Fitur inti yang harus diuji termasuk: ketersediaan, status nol, pemilihan kartu, dan perilaku layar kunci.

Ketersediaan

  • Jika aplikasi pembayaran NFC default tidak mendukung fitur ini, Akses Wallet tidak dapat diakses baik di setelan cepat maupun kunci layar.
  • Jika aplikasi pembayaran NFC default mendukung fitur ini, Wallet dapat diakses di menu setelan cepat.
  • Jika aplikasi pembayaran NFC default mendukung fitur tersebut dan jika Setelan LOCKSCREEN_SHOW_WALLET adalah true, Dompet Akses Cepat adalah dapat diakses di layar kunci.
  • Jika aplikasi pembayaran NFC default mendukung fitur tersebut dan jika Setelan LOCKSCREEN_SHOW_WALLET adalah false, Dompet Akses Cepat bukan dapat diakses di layar kunci.

Status nol

  • Jika QuickAccessWalletService diaktifkan dan diekspor, tetapi tidak diaktifkan menyediakan kartu apa pun, ubin di Shade akan muncul seperti yang pada Gambar 7. Mengeklik ubin akan membuka aplikasi pembayaran NFC default.

    Contoh kartu di bayangan yang menampilkan aplikasi pembayaran NFC default

    Gambar 7. Contoh ubin di bayangan yang menampilkan aplikasi pembayaran NFC default.

  • Mengklik tampilan status kosong seperti yang ditunjukkan pada Gambar 8 akan membuka aplikasi pembayaran NFC default. Tampilan status kosong ini hanya ditampilkan ketika pengguna memiliki satu kartu tersisa di dompet, menghapus kartu tersebut dari detail kartu lalu kembali ke tampilan wallet.

  • Layar kunci menampilkan ikon dompet.

Tampilan status kosong di Dompet Akses Cepat

Gambar 8. Tampilan status kosong di UI Dompet Akses Cepat.

Status bukan nol

  • Jika aplikasi dompet menyediakan satu atau beberapa kartu, kartu di bayangan seperti yang ditunjukkan pada Gambar 9.

    Contoh kartu di bayangan saat aplikasi dompet memiliki satu atau beberapa kartu

    Gambar 9. Contoh kartu di bayangan saat aplikasi dompet memiliki satu atau beberapa kartu.

  • Mengklik kartu akan menampilkan carousel kartu.

  • Layar kunci menampilkan tombol yang membuka Dompet Akses Cepat.

    UI Wallet Akses Cepat yang menampilkan kartu

    Gambar 10. UI Wallet Akses Cepat yang menampilkan kartu.

  • Jika kartu yang ditampilkan menunjukkan metode pembayaran NFC, pegang ponsel ke terminal pembayaran NFC membuat metode pembayaran tersebut digunakan dan tampilan wallet ditutup.

  • Mengklik kartu yang ditampilkan akan membuka aktivitas mendetail untuk kartu tersebut.

  • Jika beberapa kartu disediakan oleh QuickAccessWalletService, pengguna dapat digeser antar-kartu.

  • Menu tambahan berisi satu entri: buka pengaturan layar kunci sehingga pengguna dapat mengubah opsi Tampilkan dompet.

Pengujian status kunci

  • Jika ponsel terkunci, dompet dapat terlihat di setelan cepat bayangan, dengan deskripsi Add a card jika tidak ada kartu di default aplikasi pembayaran, atau buka kunci untuk menggunakan jika kartu ada di aplikasi pembayaran default.
  • Jika ponsel terkunci, visibilitas dompet di layar kunci akan dikontrol oleh setelan Secure.LOCKSCREEN_SHOW_WALLET, yang dikontrol di Setelan.
  • Jika ponsel terkunci, LOCKSCREEN_SHOW_WALLET adalah false, dan tidak ada kartu ada di aplikasi pembayaran NFC default, dompet tidak ditampilkan di layar kunci.
  • Jika ponsel terkunci, LOCKSCREEN_SHOW_WALLET adalah true, dan tidak ada kartu ada di aplikasi pembayaran NFC default, dompet tidak ditampilkan di layar kunci.
  • Jika ponsel dikunci, LOCKSCREEN_SHOW_WALLET adalah true, dan kartu ada di aplikasi pembayaran NFC default, dompet ditampilkan di kunci layar.
  • Membuka kunci ponsel saat dompet ditampilkan pada kunci menyebabkan kartu diminta, yang dapat mengakibatkan konten kartu yang berbeda.

Pengujian aksesibilitas

  • Pengguna Talkback dapat menavigasi tampilan dompet dengan mengusap ke kiri dan ke kanan dan dengan mendengarkan deskripsi konten kartu-kartu itu.
  • Menggeser ke kiri dan ke kanan dengan Talkback diaktifkan akan memilih setiap kartu secara bergantian. Pengguna Talkback dapat memilih dan menggunakan metode pembayaran NFC pada pembayaran NFC terminal.

Pengujian manual untuk Android 11

Menguji fitur inti Dompet Akses Cepat memerlukan pembayaran NFC terminal (asli atau palsu) dan aplikasi pembayaran NFC yang mengimplementasikan QuickAccessWalletService (aplikasi dompet). Fitur inti yang harus diuji mencakup ketersediaan, status nol, pemilihan kartu, dan perilaku layar kunci.

Ketersediaan

  • Jika setelan GLOBAL_ACTIONS_PANEL_ENABLED adalah true dan default Dengan aplikasi pembayaran NFC, fitur ini mendukung Dompet Akses Cepat dapat diakses.
  • Jika setelan GLOBAL_ACTIONS_PANEL_ENABLED adalah false dan default Aplikasi pembayaran NFC mendukung fitur ini, Dompet Akses Cepat bukan dapat diakses.
  • Jika setelan GLOBAL_ACTIONS_PANEL_ENABLED adalah true dan default Aplikasi pembayaran NFC tidak mendukung fitur Dompet Akses Cepat tidak dapat diakses.
  • Jika setelan GLOBAL_ACTIONS_PANEL_ENABLED adalah false dan default Aplikasi pembayaran NFC tidak mendukung fitur Dompet Akses Cepat tidak dapat diakses.

Status nol

  • Jika QuickAccessWalletService diaktifkan dan diekspor, tetapi tidak diaktifkan menyediakan kartu apa pun, UI Quick Access Wallet akan menampilkan tampilan status kosong.
  • Mengklik tampilan status kosong akan membuka aplikasi dompet.

    Tampilan status kosong di UI Dompet Akses Cepat
    Gambar 11. Tampilan status kosong di Akses Cepat UI Wallet.

Status bukan nol

  • Jika aplikasi dompet menyediakan satu atau beberapa kartu, kartu akan ditampilkan di UI Dompet Akses Cepat.

    UI Wallet Akses Cepat yang menampilkan kartu
    Gambar 12. UI Wallet Akses Cepat dengan kartu ditampilkan.
  • Jika kartu yang ditampilkan menunjukkan metode pembayaran NFC, pegang ponsel ke terminal pembayaran NFC membuat metode pembayaran tersebut digunakan dan tampilan wallet ditutup.

  • Mengeklik kartu yang ditampilkan akan menutup tampilan dompet dan membuka aktivitas mendetail untuk kartu tersebut.

  • Jika beberapa kartu disediakan oleh QuickAccessWalletService, pengguna dapat digeser antar-kartu.

  • Menu tambahan berisi dua entri: satu yang membuka aplikasi dompet dan tombol yang membuka Tampilkan kartu & kartu di Setelan.

Pengujian status kunci

  • Jika ponsel terkunci, visibilitas dompet dikontrol oleh Settings.Secure.POWER_MENU_LOCK_SHOW_CONTENT, yang dapat berupa dikontrol di Setelan.
  • Jika ponsel dikunci dan POWER_MENU_LOCK_SHOW_CONTENT adalah false, wallet tidak ditampilkan.
  • Jika ponsel dikunci dan POWER_MENU_LOCK_SHOW_CONTENT adalah true, wallet ditampilkan.
  • Membuka kunci ponsel saat dompet ditampilkan pada kunci menyebabkan kartu diperiksa ulang, yang dapat mengakibatkan konten kartu yang berbeda.

Pengujian aksesibilitas

  • Pengguna TalkBack dapat membuka tampilan dompet dengan menggeser ke kiri dan ke kanan dan dengan mendengarkan deskripsi konten kartu-kartu itu.
  • Menggeser ke kiri dan ke kanan dengan TalkBack diaktifkan akan memilih setiap kartu secara bergantian. Pengguna TalkBack dapat memilih dan menggunakan metode pembayaran NFC pada pembayaran NFC terminal.