Tính năng Ví truy cập nhanh (có trên Android 11) cho phép người dùng truy cập vào thẻ thanh toán cũng như các thẻ và vé có liên quan ngay trong trình đơn nguồn. Các trường hợp sử dụng chính bao gồm chọn phương thức thanh toán phù hợp trước khi thực hiện giao dịch tại thiết bị thanh toán không tiếp xúc (NFC) và nhanh chóng truy cập vào thông tin chuyến bay và các thẻ và vé khác cho các sự kiện sắp tới.
Trong Android 12 trở lên, bạn có thể sử dụng tính năng Ví truy cập nhanh trong ngăn như minh hoạ trong Hình 1 và Hình 2.
Trên Android 11, tính năng này có trong trình đơn nguồn như trong Hình 3.
Yêu cầu
Thiết bị của bạn phải có NFC để sử dụng tính năng Wallet truy cập nhanh. Tính năng này liên kết với QuickAccessWalletService
của ứng dụng thanh toán NFC mặc định, nghĩa là thiết bị cũng phải hỗ trợ tính năng mô phỏng thẻ dựa trên máy chủ (HCE) NFC.
Tổng quan về tính năng
Ví truy cập nhanh có hai phần: giao diện người dùng của Ví truy cập nhanh và nhà cung cấp thẻ của Ví truy cập nhanh.
Trên Android 12 trở lên, giao diện người dùng Wallet chạy trong giao diện người dùng hệ thống và nằm trong frameworks/base/packages/SystemUI/src/com/android/systemui/wallet
. Trong Android 11, bạn phải cài đặt và đưa giao diện người dùng Wallet (nằm trong platform/packages/apps/QuickAccessWallet
) vào danh sách cho phép.
Nhà cung cấp thẻ Truy cập nhanh Wallet là ứng dụng thanh toán mặc định qua NFC. Người dùng có thể cài đặt đồng thời nhiều ứng dụng thanh toán NFC, nhưng chỉ ứng dụng thanh toán NFC mặc định mới có thể hiển thị thẻ trên trình đơn nguồn. Bạn có thể chỉ định ứng dụng thanh toán NFC nào được đặt làm mặc định ban đầu, nhưng người dùng có thể chọn một ứng dụng khác trong phần Cài đặt. Nếu chỉ cài đặt một ứng dụng thanh toán NFC, ứng dụng đó sẽ tự động trở thành ứng dụng mặc định (xem CardEmulationManager
).
Triển khai
Để cung cấp thẻ cho giao diện người dùng Quick Access Wallet (Quyền truy cập nhanh vào Wallet), các ứng dụng thanh toán NFC phải triển khai QuickAccessWalletService
.
Ứng dụng thanh toán phải có mục nhập tệp kê khai quảng cáo dịch vụ.
Để đảm bảo chỉ Giao diện người dùng hệ thống mới có thể liên kết với QuickAccessWalletService
, ứng dụng thanh toán NFC phải yêu cầu quyền android.permission.BIND_QUICK_ACCESS_WALLET_SERVICE
. Việc yêu cầu quyền này đảm bảo rằng chỉ Giao diện người dùng hệ thống mới có thể liên kết với 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>
Tệp XML được liên kết chứa thông tin bổ sung về ví:
<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"/>
Tiếp theo, ứng dụng thanh toán phải triển khai 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
}
}
Nếu HostApduService
bắt đầu xử lý một giao dịch NFC và do đó, bắt đầu một hoạt động để hiển thị tiến trình và kết quả của khoản thanh toán, thì HostApduService
cũng sẽ cố gắng tham chiếu đến QuickAccessWalletService
đã liên kết và gọi QuickAccessWalletService#sendEvent
với loại sự kiện là TYPE_NFC_PAYMENT_STARTED
. Thao tác này sẽ đóng giao diện người dùng của Ví truy cập nhanh, nhờ đó người dùng có thể xem hoạt động thanh toán mà không bị che khuất.
Để biết thêm tài liệu về cách triển khai QuickAccessWalletService
, hãy xem QuickAccessWalletService
và kiểm thử CTS TestQuickAccessWalletService
.
Bật giao diện người dùng Quick Access Wallet (Truy cập nhanh vào Wallet) trong Android 11
Để định cấu hình Wallet truy cập nhanh có sẵn trên trình đơn nguồn trong Android 11, hãy đưa mục tiêu QuickAccessWallet
vào bản dựng và bật trình bổ trợ globalactions.wallet
bằng cách thêm dòng in đậm trong mã mẫu bên dưới vào tệp 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>
Chỉ định ứng dụng thanh toán NFC mặc định trong tệp cấu hình cài đặt bằng def_nfc_payment_component
.
Ứng dụng thanh toán NFC mặc định phải hiển thị QuickAccessWalletService
để cung cấp thẻ cho Ví Truy cập nhanh. Nếu ứng dụng thanh toán NFC mặc định không xuất dịch vụ này, giao diện người dùng của ví sẽ bị ẩn.
Chi tiết triển khai QuickAccessWalletService
QuickAccessWalletService
có 3 phương thức trừu tượng phải được triển khai: onWalletCardsRequested
, onWalletCardSelected
và onWalletDismissed
. Sơ đồ trình tự dưới đây minh hoạ trình tự cuộc gọi khi người dùng xem Ví truy cập nhanh ngay trước khi thanh toán qua NFC.
Không phải tất cả thành phần hiển thị của Wallet truy cập nhanh đều có giao dịch thanh toán NFC, nhưng Hình 4 ở trên minh hoạ tất cả chức năng của QuickAccessWalletService
. Trong ví dụ này, trình cung cấp thẻ Ví truy cập nhanh sẽ triển khai các phần tử có đường viền màu xanh dương. Giả sử thẻ thanh toán được lưu trữ trên thiết bị trong cơ sở dữ liệu và được truy cập thông qua giao diện có tên PaymentCardManager
. Giả định thêm rằng một hoạt động có tên là PaymentActivity
sẽ hiển thị kết quả của một khoản thanh toán qua NFC. Quy trình diễn ra như sau:
- Người dùng thực hiện một cử chỉ để kích hoạt Ví Truy cập nhanh.
Giao diện người dùng Wallet Truy cập nhanh (một phần của Giao diện người dùng hệ thống) sẽ kiểm tra trình quản lý gói để xem liệu ứng dụng thanh toán NFC mặc định có xuất
QuickAccessWalletService
hay không.- Nếu bạn không xuất dịch vụ, thì Ví truy cập nhanh sẽ không hiển thị.
Giao diện người dùng của Wallet Truy cập nhanh liên kết với
QuickAccessWalletService
và gọionWalletCardsRequested
. Phương thức này lấy một đối tượng yêu cầu chứa dữ liệu về số lượng và kích thước của thẻ có thể được cung cấp và một lệnh gọi lại. Bạn có thể gọi lệnh gọi lại từ một luồng trong nền.QuickAccessWalletService
tính toán các thẻ mà ứng dụng muốn hiển thị, sau đó gọi phương thứconSuccess
trong lệnh gọi lại được cung cấp. Bạn nên thực hiện các thao tác này trên luồng ở chế độ nền.Ngay khi các thẻ hiển thị, Giao diện người dùng hệ thống sẽ thông báo cho
QuickAccessWalletService
rằng thẻ đầu tiên đã được chọn bằng cách gọionWalletCardSelected
.onWalletCardSelected
được gọi mỗi khi người dùng chọn một thẻ mới.onWalletCardSelected
có thể được gọi ngay cả khi thẻ đang được chọn không thay đổi.
Khi người dùng đóng Wallet truy cập nhanh, Giao diện người dùng hệ thống sẽ thông báo cho
QuickAccessWalletService
bằng cách gọionWalletDismissed
.
Trong ví dụ trên, người dùng đưa điện thoại vào phạm vi của thiết bị thanh toán NFC trong khi ví đang hiển thị. Một thành phần chính trong việc xử lý các khoản thanh toán qua NFC là HostApduService
. Bạn phải triển khai thành phần này để xử lý các APDU do đầu đọc NFC cung cấp (để biết thêm thông tin, hãy xem phần Tính năng mô phỏng thẻ dựa trên máy chủ).
Giả định rằng ứng dụng thanh toán bắt đầu một hoạt động để hiển thị tiến trình và kết quả của hoạt động tương tác với thiết bị thanh toán NFC. Tuy nhiên, giao diện người dùng Wallet truy cập nhanh hiển thị ở đầu cửa sổ ứng dụng, tức là hoạt động thanh toán bị giao diện người dùng Wallet truy cập nhanh che khuất. Để khắc phục vấn đề này, ứng dụng phải thông báo cho Giao diện người dùng hệ thống rằng cần đóng giao diện người dùng của Ví Truy cập nhanh. Bạn có thể thực hiện việc này bằng cách tham chiếu đến QuickAccessWalletService
đã liên kết và gọi sendWalletServiceEvent
bằng loại sự kiện TYPE_NFC_PAYMENT_STARTED
.
Triển khai mẫu 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();
});
}
}
Để biết thêm thông tin chi tiết về QuickAccessWalletService
, hãy xem Tài liệu tham khảo API QuickAccessWalletService
.
Quyền
Mục kê khai cho QuickAccessWalletService
phải yêu cầu quyền android.permission.BIND_QUICK_ACCESS_WALLET_SERVICE
được giới thiệu trong Android 11. Đây là quyền cấp chữ ký do giao diện người dùng hệ thống giữ, nghĩa là chỉ quy trình giao diện người dùng hệ thống mới có thể liên kết với các phương thức triển khai của QuickAccessWalletService
. Xin lưu ý rằng các ứng dụng tải không qua cửa hàng có thể xác nhận quyền này và có toàn quyền truy cập vào dữ liệu QuickAccessWalletService
trên các thiết bị chạy Android 10 trở xuống. Để ngăn chặn điều này, dịch vụ nên kiểm tra phiên bản bản dựng trong onCreate
và chỉ bật dịch vụ trên các thiết bị chạy Android 11 trở lên. Không yêu cầu quyền nào khác cho ứng dụng ngoài những quyền cần thiết để cung cấp dịch vụ thanh toán bằng tính năng mô phỏng thẻ lưu trữ.
Nếu ứng dụng thanh toán NFC mặc định không triển khai hoặc xuất QuickAccessWalletService
, thì giao diện người dùng Wallet truy cập nhanh sẽ không hiển thị.
Chế độ cài đặt trong Android 12
Để bật hoặc tắt Ví truy cập nhanh trên màn hình khoá, người dùng có thể sử dụng nút bật/tắt Hiện ví trong phần Cài đặt > Hiển thị > Màn hình khoá. Để vô hiệu hoá ví trong ngăn điều hướng, người dùng phải chỉnh sửa ví theo cách thủ công trong ngăn cài đặt nhanh.
Hình 5. Hiện nút bật/tắt ví trên trang Màn hình khoá trong phần Cài đặt.
Cài đặt trong Android 11
Người dùng có thể tắt tính năng Ví truy cập nhanh trong ứng dụng Cài đặt. Trang cài đặt nằm trong phần Cài đặt > Hệ thống > Cử chỉ > Thẻ và vé.
Tuỳ chỉnh
Thêm chế độ xem Wallet truy cập nhanh vào một vị trí khác trong Giao diện người dùng hệ thống
Giao diện người dùng của Wallet truy cập nhanh được tạo dưới dạng trình bổ trợ hệ thống.
Mặc dù việc triển khai AOSP sử dụng tính năng này trong GlobalActionsDialog
(hiển thị khi nhấn và giữ nút nguồn), nhưng bạn có thể di chuyển tính năng này sang một cử chỉ khác miễn là bạn duy trì hợp đồng do giao diện trình bổ trợ chỉ định.
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);
}
}
Giao diện người dùng của tính năng Truy cập nhanh vào Wallet triển khai GlobalActionsPanelPlugin
và PanelViewController
.
GlobalActionsDialog
nhận thực thể của trình bổ trợ Wallet bằng cách sử dụng com.android.systemui.Dependency
:
GlobalActionsPanelPlugin mPanelPlugin =
Dependency.get(ExtensionController.class)
.newExtension(GlobalActionsPanelPlugin.class)
.withPlugin(GlobalActionsPanelPlugin.class)
.build()
.get();
Sau khi kiểm tra để đảm bảo rằng trình bổ trợ không rỗng và PanelViewController
do onPanelShown
trả về không rỗng, hộp thoại sẽ đính kèm View
do getPanelContent
cung cấp vào View
của chính trình bổ trợ và cung cấp các lệnh gọi lại thích hợp cho các sự kiện hệ thống.
// 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();
Để xoá Quick Access Wallet (Wallet truy cập nhanh) khỏi trình đơn nguồn, hãy bỏ qua mục tiêu QuickAccessWallet
khỏi bản dựng hệ thống. Để xoá Ví truy cập nhanh khỏi trình đơn nguồn nhưng thêm ví vào một thành phần hiển thị khác do Giao diện người dùng hệ thống cung cấp, hãy thêm mục tiêu bản dựng và xoá các tệp tham chiếu đến GlobalActionsPanelPlugin
từ GlobalActionsImpl
.
Đặt cấu hình mặc định
Android 12
Trên Android 12 trở lên, Ví truy cập nhanh luôn xuất hiện trong ngăn cài đặt nhanh. Chế độ hiển thị của Ví truy cập nhanh trên màn hình khoá được kiểm soát bằng chế độ cài đặt bảo mật sau: LOCKSCREEN_SHOW_WALLET
. Chế độ cài đặt này kiểm soát việc biểu tượng Ví truy cập nhanh có xuất hiện ở dưới cùng bên phải màn hình khoá hay không. Chế độ cài đặt này được đặt thành true
theo mặc định, nhưng người dùng có thể tắt trong phần Cài đặt > Màn hình > Màn hình khoá > Hiện ví.
Android 11
Trong Android 11, chế độ hiển thị Ví truy cập nhanh được kiểm soát bằng hai chế độ cài đặt bảo mật: GLOBAL_ACTIONS_PANEL_ENABLED
và GLOBAL_ACTIONS_PANEL_AVAILABLE
. Chế độ cài đặt AVAILABLE
kiểm soát việc có thể bật và tắt tính năng này trong phần Cài đặt hay không. Chế độ cài đặt này được đặt thành true
bởi
WalletPluginService
.
Nếu QuickAccessWallet
không có trong bản dựng, thì chế độ cài đặt sẽ vẫn là false
. Chế độ cài đặt ENABLED
được đặt thành true
theo mặc định ở cùng một vị trí, nhưng người dùng có thể tắt chế độ cài đặt này trong phần Cài đặt. Để thay đổi hành vi mặc định, hãy sửa đổi WalletPluginService#enableFeatureInSettings
.
Xác nhận kết quả
Để xác thực việc triển khai Quick Access Wallet, hãy chạy CTS và kiểm thử thủ công. Các thay đổi đối với trình bổ trợ cũng nên thực hiện các kiểm thử điện tâm đồ đi kèm.
Kiểm thử CTS
Chạy các chương trình kiểm thử CTS tại cts/tests/quickaccesswallet
.
Kiểm thử thủ công cho Android 12
Để kiểm thử các tính năng cốt lõi của Quick Access Wallet, bạn cần có một thiết bị thanh toán NFC (thực hoặc giả) và một ứng dụng thanh toán NFC triển khai QuickAccessWalletService
(ứng dụng ví). Các tính năng cốt lõi phải được kiểm thử bao gồm: tình trạng hoạt động, trạng thái rỗng, lựa chọn thẻ và hành vi của màn hình khoá.
Phạm vi cung cấp
- Nếu ứng dụng thanh toán NFC mặc định không hỗ trợ tính năng này, thì bạn sẽ không thể truy cập vào Ví Truy cập nhanh trong cả phần cài đặt nhanh lẫn màn hình khoá.
- Nếu ứng dụng thanh toán NFC mặc định hỗ trợ tính năng này, thì bạn có thể truy cập vào Ví truy cập nhanh trong ngăn cài đặt nhanh.
- Nếu ứng dụng thanh toán NFC mặc định hỗ trợ tính năng này và nếu chế độ cài đặt
LOCKSCREEN_SHOW_WALLET
làtrue
, thì bạn có thể truy cập vào Wallet truy cập nhanh trên màn hình khoá. - Nếu ứng dụng thanh toán NFC mặc định hỗ trợ tính năng này và nếu chế độ cài đặt
LOCKSCREEN_SHOW_WALLET
làfalse
, thì bạn sẽ không thể truy cập vào Wallet truy cập nhanh trên màn hình khoá.
Trạng thái 0
Nếu
QuickAccessWalletService
được bật và xuất nhưng không cung cấp thẻ nào, thì thẻ thông tin trong ngăn sẽ xuất hiện như minh hoạ trong ví dụ ở Hình 7. Khi nhấp vào thẻ thông tin này, ứng dụng thanh toán NFC mặc định sẽ mở ra.Hình 7. Thẻ thông tin mẫu trong ngăn thông báo hiển thị ứng dụng thanh toán NFC mặc định.
Khi nhấp vào chế độ xem trạng thái trống như trong Hình 8, ứng dụng thanh toán NFC mặc định sẽ mở ra. Chế độ xem trạng thái trống này chỉ hiển thị khi người dùng còn một thẻ trong ví, xoá thẻ khỏi trang chi tiết thẻ, sau đó quay lại chế độ xem ví.
Màn hình khoá hiển thị biểu tượng ví.
Hình 8. Chế độ xem trạng thái trống trong giao diện người dùng Wallet Truy cập nhanh.
Trạng thái khác 0
Nếu ứng dụng ví cung cấp một hoặc nhiều thẻ, thì thẻ thông tin trong bóng sẽ xuất hiện như trong Hình 9.
Hình 9. Ví dụ về thẻ thông tin trong nền khi ứng dụng ví có một hoặc nhiều thẻ.
Khi nhấp vào thẻ thông tin, bạn sẽ thấy một băng chuyền thẻ.
Màn hình khoá sẽ hiển thị một nút để mở Wallet truy cập nhanh.
Hình 10. Giao diện người dùng của tính năng Truy cập nhanh vào Wallet với một thẻ hiển thị.
Nếu thẻ hiển thị đại diện cho một phương thức thanh toán NFC, thì việc đưa điện thoại đến gần thiết bị thanh toán NFC sẽ dẫn đến việc sử dụng phương thức thanh toán đó và chế độ xem ví sẽ bị đóng.
Khi bạn nhấp vào một thẻ xuất hiện, hoạt động chi tiết trên thẻ đó sẽ mở ra.
Nếu
QuickAccessWalletService
cung cấp nhiều thẻ, người dùng có thể vuốt giữa các thẻ.Trình đơn mục bổ sung chứa một mục: mở phần cài đặt màn hình khoá để người dùng có thể thay đổi tuỳ chọn Hiển thị ví.
Kiểm thử trạng thái khoá
- Nếu điện thoại bị khoá, ví sẽ xuất hiện trên ngăn cài đặt nhanh, với nội dung mô tả là Thêm thẻ nếu không có thẻ nào trong ứng dụng thanh toán mặc định, hoặc mở khoá để sử dụng nếu có thẻ trong ứng dụng thanh toán mặc định.
- Nếu điện thoại đang khoá, chế độ hiển thị ví trên màn hình khoá sẽ được kiểm soát bằng chế độ cài đặt
Secure.LOCKSCREEN_SHOW_WALLET
. Chế độ cài đặt này được kiểm soát trong phần Cài đặt. - Nếu điện thoại đang khoá,
LOCKSCREEN_SHOW_WALLET
làfalse
và không có thẻ nào tồn tại trong ứng dụng thanh toán NFC mặc định, thì ví sẽ không hiển thị trên màn hình khoá. - Nếu điện thoại đang khoá,
LOCKSCREEN_SHOW_WALLET
làtrue
và không có thẻ nào tồn tại trong ứng dụng thanh toán NFC mặc định, thì ví sẽ không hiển thị trên màn hình khoá. - Nếu điện thoại đang khoá,
LOCKSCREEN_SHOW_WALLET
làtrue
và thẻ có trong ứng dụng thanh toán NFC mặc định, thì ví sẽ hiển thị trên màn hình khoá. - Việc mở khoá điện thoại trong khi ví đang hiển thị trên màn hình khoá sẽ dẫn đến việc truy xuất lại thẻ. Điều này có thể dẫn đến nội dung thẻ khác.
Kiểm thử khả năng hỗ trợ tiếp cận
- Người dùng TalkBack có thể di chuyển trong chế độ xem ví bằng cách vuốt sang trái và phải cũng như nghe nội dung mô tả của các thẻ.
- Khi bật TalkBack, thao tác vuốt sang trái và phải sẽ lần lượt chọn từng thẻ. Người dùng TalkBack có thể chọn và sử dụng phương thức thanh toán NFC tại thiết bị thanh toán NFC.
Bài kiểm thử thủ công dành cho Android 11
Để kiểm thử các tính năng cốt lõi của Quick Access Wallet, bạn cần có một thiết bị thanh toán NFC (thực hoặc giả) và một ứng dụng thanh toán NFC triển khai QuickAccessWalletService
(ứng dụng ví). Các tính năng cốt lõi phải được kiểm thử bao gồm tình trạng hoạt động, trạng thái rỗng, lựa chọn thẻ và hành vi của màn hình khoá.
Phạm vi cung cấp
- Nếu chế độ cài đặt
GLOBAL_ACTIONS_PANEL_ENABLED
làtrue
và ứng dụng thanh toán NFC mặc định hỗ trợ tính năng này, thì bạn có thể truy cập vào Wallet truy cập nhanh. - Nếu chế độ cài đặt
GLOBAL_ACTIONS_PANEL_ENABLED
làfalse
và ứng dụng thanh toán NFC mặc định hỗ trợ tính năng này, thì bạn không truy cập được vào Wallet truy cập nhanh. - Nếu chế độ cài đặt
GLOBAL_ACTIONS_PANEL_ENABLED
làtrue
và ứng dụng thanh toán NFC mặc định không hỗ trợ tính năng này, thì bạn sẽ không truy cập được vào Ví truy cập nhanh. - Nếu chế độ cài đặt
GLOBAL_ACTIONS_PANEL_ENABLED
làfalse
và ứng dụng thanh toán NFC mặc định không hỗ trợ tính năng này, thì bạn sẽ không truy cập được vào Ví truy cập nhanh.
Trạng thái 0
- Nếu
QuickAccessWalletService
được bật và xuất nhưng không cung cấp thẻ nào, thì giao diện người dùng Wallet Truy cập nhanh sẽ hiển thị chế độ xem trạng thái trống. Khi bạn nhấp vào chế độ xem trạng thái trống, ứng dụng ví sẽ mở ra.
Trạng thái khác 0
Nếu ứng dụng ví cung cấp một hoặc nhiều thẻ, thì các thẻ đó sẽ hiển thị trong giao diện người dùng của Wallet Truy cập nhanh.
Nếu thẻ hiển thị đại diện cho một phương thức thanh toán NFC, thì việc đưa điện thoại đến gần thiết bị thanh toán NFC sẽ dẫn đến việc sử dụng phương thức thanh toán đó và chế độ xem ví sẽ bị đóng.
Thao tác nhấp vào một thẻ hiển thị sẽ đóng chế độ xem ví và mở hoạt động chi tiết cho thẻ đó.
Nếu
QuickAccessWalletService
cung cấp nhiều thẻ, người dùng có thể vuốt giữa các thẻ.Trình đơn mục bổ sung chứa hai mục: một mục mở ứng dụng ví và một mục mở màn hình Hiển thị thẻ và vé trong phần Cài đặt.
Kiểm thử trạng thái khoá
- Nếu điện thoại đang khoá, chế độ hiển thị của ví sẽ do chế độ cài đặt
Settings.Secure.POWER_MENU_LOCK_SHOW_CONTENT
kiểm soát. Bạn có thể kiểm soát chế độ cài đặt này trong phần Cài đặt. - Nếu điện thoại bị khoá và
POWER_MENU_LOCK_SHOW_CONTENT
làfalse
, thì ví sẽ không hiển thị. - Nếu điện thoại bị khoá và
POWER_MENU_LOCK_SHOW_CONTENT
làtrue
, thì ví sẽ xuất hiện. - Việc mở khoá điện thoại trong khi ví đang hiển thị trên màn hình khoá sẽ dẫn đến việc các thẻ được truy vấn lại, điều này có thể dẫn đến nội dung thẻ khác.
Kiểm thử khả năng hỗ trợ tiếp cận
- Người dùng TalkBack có thể di chuyển trong chế độ xem ví bằng cách vuốt sang trái và sang phải, cũng như nghe phần mô tả nội dung trên các thẻ.
- Khi TalkBack đang bật, thao tác vuốt sang trái và phải sẽ lần lượt chọn từng thẻ. Người dùng TalkBack có thể chọn và sử dụng phương thức thanh toán NFC tại thiết bị thanh toán NFC.