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
Fitur Gambar 1. Quick Access Dompet (perangkat terkunci).
Fitur Dompet Akses Cepat di tempat teduh
Fitur Dompet Gambar 2. Akses Cepat (perangkat unlocked).

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

Fitur Dompet Akses Cepat di menu daya
Fitur Dompet Gambar 3. Akses Cepat di menu kekuasaan.

Persyaratan

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

Ikhtisar fitur

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

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

Penyedia kartu Quick Access Wallet adalah aplikasi pembayaran NFC default. Pengguna dapat memiliki beberapa aplikasi pembayaran NFC dipasang secara bersamaan, tetapi hanya default NFC aplikasi pembayaran dapat menunjukkan kartu pada menu kekuasaan. Anda dapat menentukan aplikasi pembayaran NFC ditetapkan sebagai default awalnya, namun pengguna dapat memilih aplikasi yang berbeda di Settings. Jika hanya satu aplikasi pembayaran NFC terinstal, menjadi default secara otomatis (lihat CardEmulationManager ).

Penerapan

Untuk memberikan kartu ke Quick Access Dompet UI, NFC aplikasi pembayaran harus menerapkan QuickAccessWalletService . Aplikasi pembayaran harus menyertakan entri manifes yang mengiklankan layanan tersebut.

Untuk memastikan bahwa hanya Sistem UI dapat mengikat QuickAccessWalletService , aplikasi pembayaran NFC harus memerlukan android.permission.BIND_QUICK_ACCESS_WALLET_SERVICE izin. Membutuhkan izin ini memastikan bahwa hanya Sistem UI dapat mengikat 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"/>

Berikutnya, aplikasi pembayaran harus menerapkan 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, mulai kegiatan untuk menampilkan kemajuan dan hasil dari pembayaran, juga harus mencoba untuk mendapatkan referensi ke terikat QuickAccessWalletService dan memanggil QuickAccessWalletService#sendEvent dengan jenis acara TYPE_NFC_PAYMENT_STARTED . Ini menyebabkan UI Dompet Akses Cepat ditutup, sehingga memungkinkan pengguna melihat aktivitas pembayaran tanpa terhalang.

Untuk dokumentasi tambahan pada pelaksanaan QuickAccessWalletService , lihat QuickAccessWalletService dan TestQuickAccessWalletService uji CTS.

Mengaktifkan UI Dompet Akses Cepat di Android 11

Untuk mengkonfigurasi Dompet Akses Cepat akan tersedia dari menu kekuasaan di Android 11, termasuk QuickAccessWallet target dalam membangun dan mengaktifkan globalactions.wallet Plugin dengan menambahkan baris dalam huruf tebal dalam kode contoh di bawah ini untuk overlay/frameworks/base/packages/SystemUI/res/values/config.xml file yang.

<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 default NFC aplikasi pembayaran dalam file konfigurasi pengaturan menggunakan def_nfc_payment_component .

Default NFC aplikasi pembayaran harus mengekspos QuickAccessWalletService untuk memberikan kartu ke Quick Access Wallet. Jika aplikasi pembayaran NFC default tidak mengekspor layanan ini, UI dompet disembunyikan.

Detail implementasi QuickAccessWalletService

QuickAccessWalletService memiliki tiga metode abstrak yang harus dilaksanakan: 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 urut panggilan ketika Quick Access Dompet dilihat.

Tidak semua pandangan dari Quick Access Dompet diikuti oleh pembayaran NFC, tapi Gambar 4 di atas menggambarkan semua kemampuan QuickAccessWalletService . Dalam contoh ini, penyedia kartu Dompet Akses Cepat mengimplementasikan elemen yang digariskan dengan warna biru. Ini diasumsikan bahwa kartu pembayaran disimpan pada perangkat dalam database dan diakses melalui sebuah antarmuka bernama PaymentCardManager . Ini lebih lanjut diasumsikan bahwa suatu kegiatan disebut PaymentActivity menampilkan hasil dari pembayaran NFC. Aliran berlangsung sebagai berikut:

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

    • Jika layanan tidak diekspor, Dompet Akses Cepat tidak ditampilkan.
  3. Akses Cepat Dompet UI mengikat ke QuickAccessWalletService dan panggilan 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 menunjukkan, kemudian memanggil onSuccess metode pada callback disediakan. Sebaiknya layanan melakukan tindakan ini di utas latar belakang.

  5. Begitu kartu ditampilkan, Sistem UI melakukan notifikasi QuickAccessWalletService bahwa kartu pertama telah dipilih oleh menelepon onWalletCardSelected .

    • onWalletCardSelected disebut setiap kali pengguna memilih kartu baru.
    • onWalletCardSelected mungkin disebut bahkan jika kartu yang dipilih saat ini tidak berubah.
  6. Ketika pengguna menolak Dompet Quick Access, System UI melakukan notifikasi QuickAccessWalletService dengan memanggil onWalletDismissed .

Dalam contoh di atas, pengguna membawa telepon ke dalam jangkauan terminal pembayaran NFC saat dompet sedang ditampilkan. Sebuah komponen kunci dari penanganan pembayaran NFC adalah HostApduService , yang harus dilaksanakan untuk APDUs proses 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. Hal ini dapat melakukannya dengan mendapatkan referensi ke terikat QuickAccessWalletService 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 keterangan lebih lanjut tentang QuickAccessWalletService , lihat QuickAccessWalletService referensi API .

Izin

Entri manifest untuk QuickAccessWalletService harus memerlukan android.permission.BIND_QUICK_ACCESS_WALLET_SERVICE izin diperkenalkan di Android 11. Ini adalah izin tanda tangan-tingkat yang diselenggarakan oleh Sistem UI, yang berarti bahwa hanya proses Sistem UI dapat mengikat implementasi QuickAccessWalletService . Sadarilah bahwa aplikasi sisi-loaded dapat mengklaim izin ini dan mendapatkan akses penuh ke QuickAccessWalletService data pada perangkat yang menjalankan Android 10 atau menurunkan. Untuk mencegah hal ini, dianjurkan bahwa layanan memeriksa versi membangun di onCreate dan mengaktifkan layanan tersebut hanya pada 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 default NFC aplikasi pembayaran tidak melaksanakan atau ekspor QuickAccessWalletService , Akses Cepat Dompet UI tidak ditampilkan.

Pengaturan di Android 12

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

Beralih untuk mengaktifkan atau menonaktifkan dompet dari layar kunci

Gambar 5. Tampilkan dompet beralih di halaman layar Lock di Settings.

Pengaturan di Android 11

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

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

Kustomisasi

Menambahkan tampilan Dompet Akses Cepat ke lokasi lain di UI Sistem

The Quick Access Dompet UI dibangun sebagai sistem plugin . Meskipun merek pelaksanaan AOSP penggunaan dalam GlobalActionsDialog (ditampilkan di pers kekuatan lama), Anda dapat memindahkan fitur di balik sikap yang berbeda selama Anda menjaga kontrak ditentukan oleh plugin interface.

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

The Quick Access Dompet UI alat GlobalActionsPanelPlugin dan PanelViewController . GlobalActionsDialog mendapat sebuah contoh dari plugin dompet dengan menggunakan com.android.systemui.Dependency :

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

Setelah memeriksa bahwa plugin adalah non-nol dan bahwa PanelViewController dikembalikan oleh onPanelShown adalah non-null, dialog menempel View disediakan oleh getPanelContent untuk sendiri View dan menyediakan callback sesuai untuk aktivitas 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 kekuasaan, menghilangkan QuickAccessWallet sasaran dari sistem membangun. Untuk menghapus Dompet Akses Cepat dari menu kekuasaan tetapi menambahkannya ke Sistem UI yang berbeda yang tersedia view, termasuk target membangun dan referensi menghapus 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 dari Quick Access Dompet di layar kunci gated oleh pengaturan aman berikut: LOCKSCREEN_SHOW_WALLET . Pengaturan ini mengontrol apakah ikon Dompet Akses Cepat ditampilkan di kanan bawah layar kunci. Pengaturan ini diatur ke true secara default, tetapi dapat dimatikan oleh pengguna dalam Pengaturan> Tampilan> Kunci layar> Tampilkan dompet.

Android 11

Di Android 11, visibilitas Dompet Akses Cepat gated oleh dua pengaturan aman: GLOBAL_ACTIONS_PANEL_ENABLED dan GLOBAL_ACTIONS_PANEL_AVAILABLE . The AVAILABLE kontrol pengaturan apakah fitur tersebut dapat diaktifkan dan dinonaktifkan di Settings. Pengaturan ini diatur ke true oleh WalletPluginService . Jika QuickAccessWallet tidak termasuk dalam membangun, maka pengaturan tetap false . The ENABLED pengaturan diatur ke true secara default di tempat yang sama, tetapi dapat dimatikan oleh pengguna di Settings. Untuk mengubah perilaku default, memodifikasi WalletPluginService#enableFeatureInSettings .

Validasi

Untuk memvalidasi penerapan Dompet Akses Cepat Anda, jalankan CTS dan pengujian manual. Perubahan plugin juga harus latihan termasuk tes robolectric .

tes CTS

Menjalankan tes CTS terletak di cts/tests/quickaccesswallet .

Tes manual untuk Android 12

Menguji fitur inti dari Quick Access Dompet membutuhkan terminal NFC pembayaran (palsu nyata atau) dan aplikasi pembayaran NFC yang mengimplementasikan QuickAccessWalletService (dompet aplikasi). 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 di pengaturan cepat maupun layar kunci.
  • Jika aplikasi pembayaran NFC default mendukung fitur tersebut, Dompet Akses Cepat dapat diakses dalam naungan pengaturan cepat.
  • Jika default NFC aplikasi pembayaran mendukung fitur dan jika LOCKSCREEN_SHOW_WALLET pengaturan adalah true , Akses Cepat Wallet dapat diakses pada layar kunci.
  • Jika default NFC aplikasi pembayaran mendukung fitur dan jika LOCKSCREEN_SHOW_WALLET pengaturan adalah false , Akses Cepat Wallet tidak dapat diakses pada layar kunci.

keadaan nol

  • Jika QuickAccessWalletService diaktifkan dan diekspor tetapi tidak memberikan kartu apapun, ubin di muncul Naungan seperti yang ditunjukkan pada contoh di Gambar 7. Klik pada ubin membuka default NFC aplikasi pembayaran.

    Contoh ubin di tempat teduh yang menunjukkan aplikasi pembayaran NFC default

    Gambar 7. Contoh ubin di bawah naungan menunjukkan standar NFC aplikasi pembayaran.

  • Mengklik 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. Kosong negara tampilan di Quick Access Dompet UI.

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 ketika 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. Akses Cepat Dompet UI dengan kartu ditampilkan.

  • Jika kartu yang ditampilkan menunjukkan metode pembayaran NFC, memegang 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 yang disediakan oleh QuickAccessWalletService , pengguna dapat menggesek antara kartu.

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

Tes status kunci

  • Jika telepon terkunci, dompet terlihat pada warna pengaturan cepat, dengan deskripsi Add kartu jika ada kartu ada di aplikasi pembayaran default, atau membuka untuk digunakan jika kartu ada di aplikasi pembayaran default.
  • Jika telepon terkunci, dompet visibilitas pada layar kunci dikendalikan oleh Secure.LOCKSCREEN_SHOW_WALLET pengaturan, yang dikendalikan di Settings.
  • Jika telepon terkunci, LOCKSCREEN_SHOW_WALLET adalah false , dan tidak ada kartu ada di default NFC aplikasi pembayaran, dompet tidak ditampilkan pada layar kunci.
  • Jika telepon terkunci, LOCKSCREEN_SHOW_WALLET adalah true , dan tidak ada kartu ada di default NFC aplikasi pembayaran, dompet tidak ditampilkan pada layar kunci.
  • Jika telepon terkunci, LOCKSCREEN_SHOW_WALLET adalah true , dan kartu ada di default NFC aplikasi pembayaran, dompet ditampilkan pada layar kunci.
  • Membuka kunci telepon saat dompet sedang 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 komentar balik dapat memilih dan menggunakan metode pembayaran NFC di terminal pembayaran NFC.

Tes manual untuk Android 11

Menguji fitur inti dari Quick Access Dompet membutuhkan terminal NFC pembayaran (palsu nyata atau) dan aplikasi pembayaran NFC yang mengimplementasikan QuickAccessWalletService (dompet aplikasi). Fitur inti yang harus diuji meliputi ketersediaan, status nol, pemilihan kartu, dan perilaku layar kunci.

Ketersediaan

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

keadaan nol

  • Jika QuickAccessWalletService diaktifkan dan diekspor tetapi tidak memberikan kartu, Akses Cepat menampilkan Dompet UI kosong pandangan negara.
  • Mengklik tampilan status kosong akan membuka aplikasi dompet.

    Tampilan status kosong di UI Dompet Akses Cepat
    Gambar 11. Kosong negara tampilan di Quick Access Dompet UI.

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. Akses Cepat Dompet UI dengan kartu ditampilkan.
  • Jika kartu yang ditampilkan menunjukkan metode pembayaran NFC, memegang 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 tersebut.

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

  • Menu luapan berisi dua entri: salah satu yang membuka aplikasi dompet dan salah satu yang membuka Tampilkan kartu & lewat layar di Settings.

Tes status kunci

  • Jika telepon terkunci, visibilitas dompet dikendalikan oleh Settings.Secure.POWER_MENU_LOCK_SHOW_CONTENT pengaturan, yang dapat dikendalikan di Settings.
  • Jika ponsel terkunci dan POWER_MENU_LOCK_SHOW_CONTENT adalah false , dompet tidak ditampilkan.
  • Jika ponsel terkunci dan POWER_MENU_LOCK_SHOW_CONTENT adalah true , dompet 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.