Google berkomitmen untuk mendorong terwujudnya keadilan ras bagi komunitas Kulit Hitam. Lihat caranya.

Dompet Akses Cepat

Fitur Quick Access Wallet, tersedia dari Android 11, memungkinkan pengguna mengakses kartu pembayaran dan pass yang relevan langsung dari menu daya. Kasus penggunaan utama termasuk memilih metode pembayaran yang sesuai sebelum melakukan transaksi di terminal NFC dan dengan cepat mengakses penerbangan dan tiket lainnya untuk acara mendatang.

Di Android 12 atau lebih tinggi, fitur Quick Access Wallet tersedia dari bayangan seperti yang ditunjukkan pada Gambar 1 dan Gambar 2.

Fitur Dompet Akses Cepat di tempat teduh
Gambar 1. Fitur Quick Access Wallet (perangkat terkunci).
Fitur Dompet Akses Cepat di tempat teduh
Gambar 2. Fitur Quick Access Wallet (perangkat tidak terkunci).

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

Fitur Dompet Akses Cepat di menu daya
Gambar 3. Fitur Quick Access Wallet pada menu power.

Persyaratan

Perangkat Anda harus memiliki NFC untuk menggunakan fitur Quick Access Wallet. Fitur ini mengikat QuickAccessWalletService dari aplikasi pembayaran NFC default, yang berarti bahwa perangkat juga harus mendukung emulasi kartu berbasis host NFC (HCE) .

Ikhtisar fitur

Ada dua bagian pada Dompet Akses Cepat: UI Dompet Akses Cepat dan penyedia kartu Dompet Akses Cepat.

Di Android 12 atau lebih tinggi, UI Wallet berjalan di UI Sistem dan terletak di frameworks/base/packages/SystemUI/src/com/android/systemui/wallet . Di Android 11, UI Wallet, yang terletak di platform/packages/apps/QuickAccessWallet , harus dipasang dan masuk daftar putih.

Penyedia kartu Quick Access Wallet adalah aplikasi pembayaran NFC default. Pengguna dapat menginstal beberapa aplikasi pembayaran NFC secara bersamaan, tetapi hanya aplikasi pembayaran NFC default yang dapat menampilkan kartu di menu daya. Anda dapat menentukan aplikasi pembayaran NFC mana yang disetel sebagai default pada awalnya, tetapi pengguna dapat memilih aplikasi yang berbeda di Pengaturan. Jika hanya satu aplikasi pembayaran NFC yang diinstal, itu menjadi default secara otomatis (lihat CardEmulationManager ).

Penerapan

Untuk menyediakan kartu ke UI Quick Access Wallet, aplikasi pembayaran NFC harus mengimplementasikan 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 memerlukan izin android.permission.BIND_QUICK_ACCESS_WALLET_SERVICE . Memerlukan izin ini 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 tertaut:

<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, sebagai akibatnya, memulai aktivitas untuk menampilkan kemajuan dan hasil pembayaran, itu juga harus mencoba untuk mendapatkan referensi ke QuickAccessWalletService terikat dan memanggil QuickAccessWalletService#sendEvent dengan jenis peristiwa TYPE_NFC_PAYMENT_STARTED . Ini menyebabkan UI Dompet Akses Cepat ditutup, sehingga memungkinkan pengguna melihat aktivitas pembayaran tanpa terhalang.

Untuk dokumentasi tambahan tentang penerapan QuickAccessWalletService , lihat QuickAccessWalletService dan pengujian CTS TestQuickAccessWalletService .

Mengaktifkan UI Dompet Akses Cepat di Android 11

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

<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 pengaturan 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 implementasi QuickAccessWalletService

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

Diagram urutan Dompet Akses Cepat

Contoh urutan panggilan saat Dompet Akses Cepat dilihat
Gambar 4. Contoh urutan panggilan saat Quick Access Wallet ditampilkan.

Tidak semua tampilan Dompet Akses Cepat diikuti oleh pembayaran NFC, tetapi Gambar 4 di atas menggambarkan semua kemampuan QuickAccessWalletService . Dalam contoh ini, penyedia kartu Dompet Akses Cepat mengimplementasikan elemen yang digariskan dengan warna biru. Diasumsikan bahwa kartu pembayaran disimpan di perangkat dalam database dan diakses melalui antarmuka bernama PaymentCardManager . Lebih lanjut diasumsikan bahwa aktivitas yang disebut PaymentActivity menampilkan hasil pembayaran NFC. Aliran berlangsung sebagai berikut:

  1. Pengguna melakukan gerakan untuk membuka Dompet Akses Cepat.
  2. UI Dompet Akses Cepat (bagian dari UI Sistem) memeriksa pengelola paket untuk melihat apakah aplikasi pembayaran NFC default mengekspor QuickAccessWalletService .

    • Jika layanan tidak diekspor, Dompet Akses Cepat tidak ditampilkan.
  3. UI Dompet Akses Cepat mengikat ke QuickAccessWalletService dan memanggil onWalletCardsRequested . Metode ini mengambil objek permintaan yang berisi data tentang jumlah dan ukuran kartu yang dapat disediakan dan panggilan balik. Panggilan balik dapat dipanggil dari utas latar belakang.

  4. QuickAccessWalletService menghitung kartu yang ingin ditampilkan, lalu memanggil metode onSuccess pada panggilan balik yang disediakan. Sebaiknya layanan melakukan tindakan ini di utas 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 kartu yang dipilih saat ini tidak berubah.
  6. Saat pengguna menutup Dompet Akses Cepat, UI Sistem akan memberi tahu QuickAccessWalletService dengan memanggil onWalletDismissed .

Dalam contoh di atas, pengguna membawa telepon ke dalam jangkauan terminal pembayaran NFC saat dompet sedang ditampilkan. Komponen kunci dalam menangani pembayaran NFC adalah HostApduService , yang harus diimplementasikan untuk memproses APDU yang disediakan oleh pembaca NFC (untuk informasi lebih lanjut, lihat Emulasi kartu berbasis Host ). Diasumsikan bahwa aplikasi pembayaran memulai aktivitas untuk menampilkan kemajuan dan hasil interaksi dengan terminal NFC. Namun, UI Dompet Akses Cepat ditampilkan di atas jendela aplikasi, yang berarti bahwa aktivitas pembayaran dikaburkan oleh UI Dompet Akses Cepat. Untuk memperbaikinya, aplikasi harus memberi tahu UI Sistem bahwa UI Dompet Akses Cepat harus ditutup. Itu dapat dilakukan dengan mendapatkan referensi ke QuickAccessWalletService terikat dan memanggil sendWalletServiceEvent dengan jenis acara TYPE_NFC_PAYMENT_STARTED .

Contoh implementasi 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 detail lebih lanjut tentang QuickAccessWalletService , lihat referensi API QuickAccessWalletService .

Izin

Entri manifes untuk QuickAccessWalletService harus memerlukan izin android.permission.BIND_QUICK_ACCESS_WALLET_SERVICE yang diperkenalkan di Android 11. Ini adalah izin tingkat tanda tangan yang dipegang oleh UI Sistem, yang berarti bahwa hanya proses UI Sistem yang dapat mengikat implementasi QuickAccessWalletService . Ketahuilah bahwa aplikasi yang dimuat di samping dapat mengklaim izin ini dan mendapatkan akses penuh ke data QuickAccessWalletService di perangkat yang menjalankan Android 10 atau lebih rendah. Untuk mencegah hal ini, sebaiknya layanan memeriksa versi build di onCreate dan mengaktifkan layanan hanya di perangkat yang menjalankan Android 11 dan lebih tinggi. Tidak ada izin aplikasi lain yang diperlukan selain yang diperlukan untuk menyediakan layanan pembayaran emulasi kartu host.

Jika aplikasi pembayaran NFC default tidak menerapkan atau mengekspor QuickAccessWalletService , UI Quick Access Wallet tidak akan ditampilkan.

Pengaturan di Android 12

Untuk mengaktifkan atau menonaktifkan Dompet Akses Cepat dari layar kunci, pengguna dapat menggunakan sakelar Tampilkan dompet di Pengaturan > Tampilan > Layar kunci . Untuk menonaktifkan dompet di tempat teduh, pengguna harus mengeditnya secara manual di tempat teduh pengaturan cepat.

Beralih untuk mengaktifkan atau menonaktifkan dompet dari layar kunci

Gambar 5. Tampilkan toggle dompet di halaman Lock screen di Settings.

Pengaturan di Android 11

Pengguna dapat mematikan fitur Quick Access Wallet dari aplikasi Pengaturan. Halaman pengaturan dapat ditemukan di Settings > System > Gestures > Cards & pass .

Halaman pengaturan untuk mengaktifkan atau menonaktifkan fitur Dompet Akses Cepat
Gambar 6. Halaman pengaturan untuk mengaktifkan atau menonaktifkan fitur Quick Access Wallet.

Kustomisasi

Menambahkan tampilan Dompet Akses Cepat ke lokasi lain di UI Sistem

UI Dompet Akses Cepat dibuat sebagai plugin sistem . Meskipun implementasi AOSP memanfaatkannya di GlobalActionsDialog (ditampilkan pada tekan lama), Anda dapat memindahkan fitur di belakang gerakan yang berbeda selama Anda mempertahankan kontrak yang ditentukan oleh antarmuka plugin.

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

UI Dompet Akses Cepat mengimplementasikan GlobalActionsPanelPlugin dan PanelViewController . GlobalActionsDialog mendapatkan instance plugin dompet dengan menggunakan com.android.systemui.Dependency :

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

Setelah memeriksa apakah plugin bukan null dan PanelViewController yang dikembalikan oleh onPanelShown bukan null, dialog akan melampirkan View yang disediakan oleh getPanelContent ke View sendiri dan menyediakan panggilan balik yang sesuai untuk kejadian 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 target QuickAccessWallet dari sistem build. Untuk menghapus Dompet Akses Cepat dari menu daya tetapi menambahkannya ke tampilan yang disediakan UI Sistem berbeda, sertakan target build dan hapus referensi ke GlobalActionsPanelPlugin dari GlobalActionsImpl .

Mengatur konfigurasi default

Android 12

Di Android 12 atau lebih tinggi, Dompet Akses Cepat selalu terlihat di bayangan pengaturan cepat. Visibilitas Dompet Akses Cepat di layar kunci dilindungi oleh pengaturan aman berikut: LOCKSCREEN_SHOW_WALLET . Pengaturan ini mengontrol apakah ikon Dompet Akses Cepat ditampilkan di kanan bawah layar kunci. Pengaturan ini disetel ke true secara default, tetapi dapat dimatikan oleh pengguna di Pengaturan > Tampilan > Layar kunci > Tampilkan dompet .

Android 11

Di Android 11, visibilitas Dompet Akses Cepat dilindungi oleh dua setelan aman: GLOBAL_ACTIONS_PANEL_ENABLED dan GLOBAL_ACTIONS_PANEL_AVAILABLE . Pengaturan AVAILABLE mengontrol apakah fitur dapat dihidupkan dan dimatikan di Pengaturan. Pengaturan ini disetel ke true oleh WalletPluginService . Jika QuickAccessWallet tidak disertakan dalam build, maka setelannya akan tetap false . Pengaturan ENABLED diatur ke true secara default di tempat yang sama, tetapi dapat dimatikan oleh pengguna di Pengaturan. Untuk mengubah perilaku default, ubah WalletPluginService#enableFeatureInSettings .

Validasi

Untuk memvalidasi penerapan Dompet Akses Cepat Anda, jalankan CTS dan pengujian manual. Perubahan pada plugin juga harus menggunakan tes robolectric yang disertakan.

tes CTS

Jalankan tes CTS yang terletak di cts/tests/quickaccesswallet .

Tes manual untuk Android 12

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

Ketersediaan

  • Jika aplikasi pembayaran NFC default tidak mendukung fitur tersebut, Dompet Akses Cepat tidak dapat diakses baik dalam pengaturan cepat maupun layar kunci.
  • Jika aplikasi pembayaran NFC default mendukung fitur tersebut, Dompet Akses Cepat dapat diakses dalam naungan pengaturan cepat.
  • Jika aplikasi pembayaran NFC default mendukung fitur tersebut dan jika setelan LOCKSCREEN_SHOW_WALLET true , Dompet Akses Cepat dapat diakses di layar kunci.
  • Jika aplikasi pembayaran NFC default mendukung fitur tersebut dan jika setelan LOCKSCREEN_SHOW_WALLET false , Dompet Akses Cepat tidak dapat diakses di layar kunci.

keadaan nol

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

    Contoh ubin di tempat teduh yang menunjukkan aplikasi pembayaran NFC default

    Gambar 7. Contoh ubin di tempat teduh yang menunjukkan aplikasi pembayaran NFC default.

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

  • Layar kunci menunjukkan ikon dompet.

Tampilan status kosong di Dompet Akses Cepat

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

Keadaan bukan nol

  • Jika aplikasi dompet menyediakan satu atau lebih kartu, ubin di tempat teduh akan muncul seperti yang ditunjukkan pada Gambar 9.

    Contoh ubin di tempat teduh ketika aplikasi dompet memiliki satu atau lebih kartu

    Gambar 9. Contoh ubin di tempat teduh saat aplikasi dompet memiliki satu atau lebih kartu.

  • Mengklik ubin menunjukkan carousel kartu.

  • Layar kunci menunjukkan tombol yang membuka Dompet Akses Cepat.

    UI Dompet Akses Cepat dengan kartu yang ditampilkan

    Gambar 10. UI Dompet Akses Cepat dengan kartu yang ditampilkan.

  • Jika kartu yang ditampilkan menunjukkan metode pembayaran NFC, mendekatkan ponsel ke terminal pembayaran NFC akan menyebabkan metode pembayaran tersebut digunakan dan tampilan dompet ditutup.

  • Mengeklik kartu yang ditampilkan akan membuka aktivitas terperinci untuk kartu itu.

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

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

Tes status kunci

  • Jika ponsel terkunci, dompet terlihat di bayangan pengaturan cepat, dengan deskripsi Tambahkan kartu jika tidak ada kartu di aplikasi pembayaran default, atau buka kunci untuk digunakan jika ada kartu di aplikasi pembayaran default.
  • Jika ponsel terkunci, visibilitas dompet di layar kunci dikendalikan oleh pengaturan Secure.LOCKSCREEN_SHOW_WALLET , yang dikendalikan di Pengaturan.
  • Jika ponsel terkunci, LOCKSCREEN_SHOW_WALLET false , dan tidak ada kartu di aplikasi pembayaran NFC default, dompet tidak ditampilkan di layar kunci.
  • Jika ponsel terkunci, LOCKSCREEN_SHOW_WALLET true , dan tidak ada kartu di aplikasi pembayaran NFC default, dompet tidak ditampilkan di layar kunci.
  • Jika ponsel terkunci, LOCKSCREEN_SHOW_WALLET true , dan kartu ada di aplikasi pembayaran NFC default, dompet ditampilkan di layar kunci.
  • Membuka kunci ponsel saat dompet ditampilkan di layar kunci menyebabkan kartu diminta ulang, yang mungkin menghasilkan konten kartu yang berbeda.

Tes aksesibilitas

  • Pengguna Talkback dapat menavigasi tampilan dompet dengan menggesek ke kiri dan kanan dan dengan mendengarkan deskripsi konten kartu.
  • Menggesek ke kiri dan kanan dengan Talkback diaktifkan memilih setiap kartu secara bergantian. Pengguna komentar balik dapat memilih dan menggunakan metode pembayaran NFC di terminal pembayaran NFC.

Tes manual untuk Android 11

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

Ketersediaan

  • Jika setelan GLOBAL_ACTIONS_PANEL_ENABLED true dan aplikasi pembayaran NFC default mendukung fitur tersebut, Dompet Akses Cepat dapat diakses.
  • Jika setelan GLOBAL_ACTIONS_PANEL_ENABLED false dan aplikasi pembayaran NFC default mendukung fitur tersebut, Dompet Akses Cepat tidak dapat diakses.
  • Jika setelan GLOBAL_ACTIONS_PANEL_ENABLED true dan aplikasi pembayaran NFC default tidak mendukung fitur tersebut, Dompet Akses Cepat tidak dapat diakses.
  • Jika setelan GLOBAL_ACTIONS_PANEL_ENABLED false dan aplikasi pembayaran NFC default tidak mendukung fitur tersebut, Dompet Akses Cepat tidak dapat diakses.

keadaan nol

  • Jika QuickAccessWalletService diaktifkan dan diekspor tetapi tidak menyediakan kartu apa pun, UI Quick Access Wallet 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 UI Dompet Akses Cepat.

Keadaan bukan nol

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

    UI Dompet Akses Cepat dengan kartu yang ditampilkan
    Gambar 12. UI Dompet Akses Cepat dengan kartu yang ditampilkan.
  • Jika kartu yang ditampilkan menunjukkan metode pembayaran NFC, mendekatkan ponsel ke terminal pembayaran NFC akan menyebabkan metode pembayaran tersebut digunakan dan tampilan dompet ditutup.

  • Mengklik kartu yang ditampilkan akan menutup tampilan dompet dan membuka aktivitas terperinci untuk kartu itu.

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

  • Menu luapan berisi dua entri: satu yang membuka aplikasi dompet dan satu lagi yang membuka layar Tampilkan kartu & pass di Pengaturan.

Tes status kunci

  • Jika ponsel terkunci, visibilitas dompet dikontrol oleh pengaturan Settings.Secure.POWER_MENU_LOCK_SHOW_CONTENT , yang dapat dikontrol di Settings.
  • Jika ponsel terkunci dan POWER_MENU_LOCK_SHOW_CONTENT false , dompet tidak ditampilkan.
  • Jika ponsel terkunci dan POWER_MENU_LOCK_SHOW_CONTENT true , dompet akan ditampilkan.
  • Membuka kunci ponsel saat dompet ditampilkan di layar kunci menyebabkan kartu diminta ulang, yang mungkin menghasilkan konten kartu yang berbeda.

Tes aksesibilitas

  • Pengguna TalkBack dapat menavigasi tampilan dompet dengan menggesek ke kiri dan kanan dan dengan mendengarkan deskripsi konten kartu.
  • Menggesek ke kiri dan kanan dengan TalkBack diaktifkan akan memilih setiap kartu secara bergantian. Pengguna TalkBack dapat memilih dan menggunakan metode pembayaran NFC di terminal pembayaran NFC.