คุณลักษณะ Quick Access Wallet มีให้ใน Android 11 ให้ผู้ใช้เข้าถึงบัตรชำระเงินและบัตรผ่านที่เกี่ยวข้องได้โดยตรงจากเมนูเปิด/ปิด กรณีการใช้งานที่สำคัญ ได้แก่ การเลือกวิธีการชำระเงินที่เหมาะสมก่อนทำธุรกรรมที่เทอร์มินัล NFC และเข้าถึงเที่ยวบินและบัตรผ่านอื่น ๆ อย่างรวดเร็วสำหรับกิจกรรมที่จะเกิดขึ้น
ใน Android 12 หรือสูงกว่า คุณลักษณะ Quick Access Wallet จะพร้อมใช้งานจากเฉดสีดังแสดงในรูปที่ 1 และรูปที่ 2
![]() | ![]() |
ใน Android 11 คุณสมบัตินี้มีให้จากเมนูพลังงานดังแสดงในรูปที่ 3

ความต้องการ
อุปกรณ์ของคุณต้องมี NFC เพื่อใช้คุณสมบัติ Quick Access Wallet คุณลักษณะนี้ผูกกับ QuickAccessWalletService
ของแอปการชำระเงิน NFC เริ่มต้น ซึ่งหมายความว่าอุปกรณ์ต้องสนับสนุนการ จำลองบัตรตามโฮสต์ NFC (HCE) ด้วย
ภาพรวมคุณสมบัติ
Quick Access Wallet มีสองส่วน: Quick Access Wallet UI และผู้ให้บริการบัตร Quick Access Wallet
ใน Android 12 หรือสูงกว่า Wallet UI ทำงานใน System UI และอยู่ใน frameworks/base/packages/SystemUI/src/com/android/systemui/wallet
ใน Android 11 Wallet UI ซึ่งอยู่ใน platform/packages/apps/QuickAccessWallet
จะต้องได้รับการติดตั้งและอนุญาตพิเศษ
ผู้ให้บริการบัตร Quick Access Wallet คือแอปชำระเงิน NFC เริ่มต้น ผู้ใช้สามารถติดตั้งแอปการชำระเงิน NFC ได้หลายแอปพร้อมกัน แต่เฉพาะแอปการชำระเงิน NFC เริ่มต้น เท่านั้นที่สามารถแสดงการ์ดบนเมนูเปิด/ปิดได้ คุณสามารถระบุได้ว่าแอปการชำระเงิน NFC ใดถูกตั้งค่าเป็น ค่าเริ่มต้น ในตอนแรก แต่ผู้ใช้สามารถเลือกแอปอื่นในการตั้งค่าได้ หากติดตั้งแอปการชำระเงิน NFC เพียงแอปเดียว แอปนั้นจะกลายเป็นแอปเริ่มต้นโดยอัตโนมัติ (ดู CardEmulationManager
)
การดำเนินการ
ในการจัดหาบัตรให้กับ Quick Access Wallet UI แอปการชำระเงิน NFC ต้องใช้ QuickAccessWalletService
แอปการชำระเงินต้องมีรายการโฆษณาบริการ
เพื่อให้แน่ใจว่ามีเพียง UI ของระบบเท่านั้นที่สามารถผูกกับ QuickAccessWalletService
ได้ แอปการชำระเงิน NFC ต้องได้รับอนุญาตจาก android.permission.BIND_QUICK_ACCESS_WALLET_SERVICE
การขอสิทธิ์นี้ช่วยให้แน่ใจว่ามีเพียง System UI เท่านั้นที่สามารถผูกกับ 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>
ข้อมูลเพิ่มเติมเกี่ยวกับกระเป๋าเงินจะรวมอยู่ในไฟล์ XML ที่เชื่อมโยง:
<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"/>
ถัดไป แอปการชำระเงินต้องใช้ 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
}
}
หาก HostApduService
เริ่มจัดการธุรกรรม NFC และด้วยเหตุนี้ เริ่มกิจกรรมเพื่อแสดงความคืบหน้าและผลลัพธ์ของการชำระเงิน ก็ควรพยายามรับการอ้างอิงถึง QuickAccessWalletService
ที่ผูกไว้ และเรียก QuickAccessWalletService#sendEvent
ด้วยประเภทเหตุการณ์เป็น TYPE_NFC_PAYMENT_STARTED
. ซึ่งทำให้ UI ของ Quick Access Wallet ถูกปิด ซึ่งทำให้ผู้ใช้มองเห็นกิจกรรมการชำระเงินได้โดยไม่มีสิ่งกีดขวาง
สำหรับเอกสารเพิ่มเติมเกี่ยวกับการนำ QuickAccessWalletService
ไปใช้ โปรดดูที่ QuickAccessWalletService
และการทดสอบ TestQuickAccessWalletService
CTS
เปิดใช้งาน Quick Access Wallet UI ใน Android 11
ในการกำหนดค่า Quick Access Wallet ให้ใช้งานได้จากเมนูพลังงานใน Android 11 ให้รวมเป้าหมาย QuickAccessWallet
ในบิลด์และเปิดใช้งานปลั๊กอิน globalactions.wallet
โดยเพิ่มบรรทัดที่เป็นตัวหนาในตัวอย่างโค้ดด้านล่างไปยัง overlay/frameworks/base/packages/SystemUI/res/values/config.xml
ไฟล์ 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>
ระบุแอปการชำระเงิน NFC เริ่มต้นใน ไฟล์การกำหนดค่าการตั้งค่า โดยใช้ def_nfc_payment_component
แอปการชำระเงิน NFC เริ่มต้นต้องเปิดเผย QuickAccessWalletService
เพื่อมอบบัตรให้กับ Quick Access Wallet หากแอปการชำระเงิน NFC เริ่มต้นไม่ส่งออกบริการนี้ UI กระเป๋าเงินจะถูกซ่อน
รายละเอียดการใช้งาน QuickAccessWalletService
QuickAccessWalletService
มีวิธีที่เป็นนามธรรมสามวิธีที่ต้องดำเนินการ: onWalletCardsRequested
, onWalletCardSelected
และ onWalletDismissed
แผนภาพลำดับด้านล่างแสดงลำดับการโทรเมื่อมีการดู Quick Access Wallet ก่อนการชำระเงิน NFC

ไม่ใช่ทุกมุมมองของ Quick Access Wallet จะตามด้วยการชำระเงิน NFC แต่รูปที่ 4 ด้านบนแสดงให้เห็นถึงความสามารถทั้งหมดของ QuickAccessWalletService
ในตัวอย่างนี้ ผู้ให้บริการบัตร Quick Access Wallet ใช้องค์ประกอบที่แสดงเป็นสีน้ำเงิน สันนิษฐานว่าบัตรชำระเงินถูกจัดเก็บไว้ในอุปกรณ์ในฐานข้อมูล และเข้าถึงได้ผ่านอินเทอร์เฟซที่ชื่อ PaymentCardManager
สันนิษฐานเพิ่มเติมว่ากิจกรรมที่เรียกว่า PaymentActivity
แสดงผลของการชำระเงิน NFC การไหลดำเนินการดังนี้:
- ผู้ใช้ใช้ท่าทางสัมผัสเพื่อเปิด Quick Access Wallet
Quick Access Wallet UI (ส่วนหนึ่งของ System UI) จะตรวจสอบตัวจัดการแพ็คเกจเพื่อดูว่าแอปการชำระเงิน NFC เริ่มต้นส่งออก
QuickAccessWalletService
หรือไม่- หากไม่มีการส่งออกบริการ Quick Access Wallet จะไม่แสดงขึ้น
Quick Access Wallet UI เชื่อมโยงกับ
QuickAccessWalletService
และเรียกonWalletCardsRequested
เมธอดนี้ใช้ออบเจกต์คำขอที่มีข้อมูลเกี่ยวกับจำนวนและขนาดของการ์ดที่สามารถให้ได้และโทรกลับ สามารถโทรกลับได้จากเธรดพื้นหลังQuickAccessWalletService
คำนวณบัตรที่ต้องการแสดง จากนั้นเรียกใช้เมธอดonSuccess
ในการโทรกลับที่ให้ไว้ ขอแนะนำให้บริการดำเนินการเหล่านี้บนเธรดพื้นหลังทันทีที่มีการแสดงบัตร UI ของระบบจะแจ้ง
QuickAccessWalletService
ว่าได้เลือกบัตรใบแรกแล้วโดยการเรียกonWalletCardSelected
-
onWalletCardSelected
จะถูกเรียกทุกครั้งที่ผู้ใช้เลือกบัตรใหม่ - อาจถูกเรียก
onWalletCardSelected
แม้ว่าบัตรที่เลือกในปัจจุบันจะไม่มีการเปลี่ยนแปลง
-
เมื่อผู้ใช้ยกเลิก Quick Access Wallet นั้น System UI จะแจ้ง
QuickAccessWalletService
โดยการเรียกonWalletDismissed
ในตัวอย่างข้างต้น ผู้ใช้นำโทรศัพท์เข้าสู่ช่วงของเทอร์มินัลการชำระเงิน NFC ในขณะที่กระเป๋าเงินกำลังแสดงอยู่ องค์ประกอบหลักของการจัดการการชำระเงิน NFC คือ HostApduService
ซึ่งต้องนำมาใช้เพื่อประมวลผล APDU ที่เครื่องอ่าน NFC ให้มา (สำหรับข้อมูลเพิ่มเติม โปรดดู ที่ การจำลองบัตรผ่านโฮสต์ ) ถือว่าแอปการชำระเงินเริ่มกิจกรรมเพื่อแสดงความคืบหน้าและผลลัพธ์ของการโต้ตอบกับเทอร์มินัล NFC อย่างไรก็ตาม Quick Access Wallet UI จะแสดงที่ด้านบนของหน้าต่างแอป หมายความว่ากิจกรรมการชำระเงินถูกบดบังโดย Quick Access Wallet UI ในการแก้ไขปัญหานี้ แอปต้องแจ้ง UI ของระบบว่าควรปิด Quick Access Wallet UI สามารถทำได้โดยรับการอ้างอิงถึง QuickAccessWalletService
ที่ถูกผูกไว้ และเรียก sendWalletServiceEvent
ด้วยประเภทเหตุการณ์ TYPE_NFC_PAYMENT_STARTED
การใช้งานตัวอย่าง 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();
});
}
}
สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับ QuickAccessWalletService
โปรดดู การอ้างอิง QuickAccessWalletService
API
สิทธิ์
รายการรายการสำหรับ QuickAccessWalletService
ต้องได้รับอนุญาต android.permission.BIND_QUICK_ACCESS_WALLET_SERVICE
ที่แนะนำใน Android 11 นี่คือการอนุญาตระดับลายเซ็นที่จัดโดย UI ของระบบ ซึ่งหมายความว่าเฉพาะกระบวนการ UI ของระบบเท่านั้นที่สามารถผูกกับการใช้งาน QuickAccessWalletService
โปรดทราบว่าแอปแบบไซด์โหลดสามารถอ้างสิทธิ์นี้และเข้าถึงข้อมูล QuickAccessWalletService
บนอุปกรณ์ที่ใช้ Android 10 หรือต่ำกว่าได้อย่างเต็มที่ เพื่อป้องกันสิ่งนี้ ขอแนะนำให้บริการตรวจสอบเวอร์ชันบิลด์ใน onCreate
และเปิดใช้งานบริการเฉพาะบนอุปกรณ์ที่ใช้ Android 11 ขึ้นไปเท่านั้น ไม่จำเป็นต้องมีการอนุญาตแอพอื่นนอกเหนือจากที่จำเป็นเพื่อให้บริการชำระเงินจำลองการ์ดโฮสต์
หากแอปการชำระเงิน NFC เริ่มต้นไม่ได้ใช้งานหรือส่งออก QuickAccessWalletService
Quick Access Wallet UI จะไม่แสดงขึ้น
การตั้งค่าใน Android 12
ในการเปิดหรือปิดใช้งาน Quick Access Wallet จากหน้าจอล็อก ผู้ใช้สามารถใช้การสลับ Show wallet ใน การตั้งค่า > การ แสดงผล > หน้าจอล็อก หากต้องการปิดใช้งานกระเป๋าเงินในที่ร่ม ผู้ใช้ต้องแก้ไขด้วยตนเองในหน้าต่างการตั้งค่าด่วน
รูปที่ 5. แสดงการสลับกระเป๋าสตางค์ในหน้าล็อคหน้าจอในการตั้งค่า
การตั้งค่าใน Android 11
ผู้ใช้สามารถปิดคุณลักษณะ Quick Access Wallet ได้จากแอปการตั้งค่า หน้าการตั้งค่าอยู่ใน การตั้งค่า > ระบบ > ท่าทางสัมผัส > การ์ดและบัตร

การปรับแต่ง
การเพิ่มมุมมอง Quick Access Wallet ไปยังตำแหน่งอื่นใน System UI
Quick Access Wallet UI ถูกสร้างเป็น ปลั๊กอินของระบบ แม้ว่าการนำ AOSP ไปใช้จะใช้งานได้ใน GlobalActionsDialog
(แสดงเมื่อกดค้างไว้) คุณสามารถย้ายคุณลักษณะนี้ไปด้านหลังท่าทางอื่นได้ตราบเท่าที่คุณรักษาสัญญาที่ระบุโดยอินเทอร์เฟซของปลั๊กอิน
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);
}
}
Quick Access Wallet UI ใช้ GlobalActionsPanelPlugin
และ PanelViewController
GlobalActionsDialog
รับอินสแตนซ์ของปลั๊กอินกระเป๋าเงินโดยใช้ com.android.systemui.Dependency
:
GlobalActionsPanelPlugin mPanelPlugin =
Dependency.get(ExtensionController.class)
.newExtension(GlobalActionsPanelPlugin.class)
.withPlugin(GlobalActionsPanelPlugin.class)
.build()
.get();
หลังจากตรวจสอบว่าปลั๊กอินไม่เป็นโมฆะและ PanelViewController
ที่ส่งคืนโดย onPanelShown
นั้นไม่เป็นโมฆะ ไดอะล็อกจะแนบ View
ที่ getPanelContent
ให้ไว้กับ View
ของตัวเอง และให้การเรียกกลับที่เหมาะสมสำหรับเหตุการณ์ของระบบ
// 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();
หากต้องการลบ Quick Access Wallet ออกจากเมนูพลังงาน ให้ละเว้นเป้าหมาย QuickAccessWallet
ออกจากบิลด์ระบบ หากต้องการลบ Quick Access Wallet ออกจากเมนูพาวเวอร์ แต่เพิ่มลงในมุมมอง System UI อื่นที่มีให้ ให้รวมเป้าหมายของบิลด์และลบการอ้างอิงไปยัง GlobalActionsPanelPlugin
จาก GlobalActionsImpl
การตั้งค่าการกำหนดค่าเริ่มต้น
Android 12
ใน Android 12 หรือสูงกว่า Quick Access Wallet จะมองเห็นได้เสมอในหน้าต่างการตั้งค่าด่วน การมองเห็น Quick Access Wallet ในหน้าจอล็อกนั้นถูกจำกัดโดยการตั้งค่าความปลอดภัยต่อไปนี้: LOCKSCREEN_SHOW_WALLET
การตั้งค่านี้ควบคุมว่าจะแสดงไอคอน Quick Access Wallet ที่ด้านล่างขวาของหน้าจอเมื่อล็อกหรือไม่ การตั้งค่านี้ถูกตั้งค่าเป็น true
โดยค่าเริ่มต้น แต่ผู้ใช้สามารถปิดได้ใน การตั้งค่า > การ แสดงผล > หน้าจอล็อก > แสดงกระเป๋าเงิน
Android 11
ใน Android 11 การมองเห็น Quick Access Wallet ถูกปิดกั้นโดยการตั้งค่าความปลอดภัยสองแบบ: GLOBAL_ACTIONS_PANEL_ENABLED
และ GLOBAL_ACTIONS_PANEL_AVAILABLE
การตั้งค่า AVAILABLE
จะควบคุมว่าจะเปิดและปิดคุณสมบัตินี้ในการตั้งค่าหรือไม่ การตั้งค่านี้ถูกตั้งค่าเป็น true
โดย WalletPluginService
หาก QuickAccessWallet
ไม่รวมอยู่ในบิลด์ การตั้งค่ายังคง false
การตั้งค่า ENABLED
ถูกตั้งค่าเป็น true
โดยค่าเริ่มต้นในที่เดียวกัน แต่ผู้ใช้สามารถปิดได้ในการตั้งค่า หากต้องการเปลี่ยนการทำงานเริ่มต้น ให้แก้ไข WalletPluginService#enableFeatureInSettings
การตรวจสอบความถูกต้อง
ในการตรวจสอบการใช้งาน Quick Access Wallet ของคุณ ให้รัน CTS และการทดสอบด้วยตนเอง การเปลี่ยนแปลงปลั๊กอินควรใช้การ ทดสอบหุ่นยนต์ ที่รวมอยู่ด้วย
การทดสอบ CTS
เรียกใช้การทดสอบ CTS ซึ่งอยู่ที่ cts/tests/quickaccesswallet
การทดสอบด้วยตนเองสำหรับ Android 12
การทดสอบคุณสมบัติหลักของ Quick Access Wallet ต้องใช้เทอร์มินัลการชำระเงิน NFC (ของจริงหรือของปลอม) และแอปการชำระเงิน NFC ที่ใช้ QuickAccessWalletService
(แอปกระเป๋าเงิน) คุณสมบัติหลักที่ต้องทดสอบ ได้แก่ ความพร้อมใช้งาน สถานะเป็นศูนย์ การเลือกการ์ด และลักษณะการทำงานของหน้าจอเมื่อล็อก
มีจำหน่าย
- หากแอปการชำระเงิน NFC เริ่มต้นไม่สนับสนุนคุณลักษณะนี้ Quick Access Wallet จะไม่สามารถเข้าถึงได้ทั้งในการตั้งค่าด่วนหรือหน้าจอเมื่อล็อก
- หากแอปการชำระเงิน NFC เริ่มต้นรองรับคุณสมบัตินี้ Quick Access Wallet จะสามารถเข้าถึงได้ในหน้าต่างการตั้งค่าด่วน
- หากแอปการชำระเงิน NFC เริ่มต้นรองรับคุณลักษณะนี้ และหากการตั้งค่า
LOCKSCREEN_SHOW_WALLET
เป็นtrue
จะสามารถเข้าถึงกระเป๋าเงินด่วนได้บนหน้าจอล็อก - หากแอปการชำระเงิน NFC เริ่มต้นรองรับคุณลักษณะนี้ และหากการตั้งค่า
LOCKSCREEN_SHOW_WALLET
เป็นfalse
คุณจะไม่สามารถเข้าถึง Quick Access Wallet ได้บนหน้าจอล็อก
สถานะศูนย์
หากเปิดใช้งานและส่งออก
QuickAccessWalletService
แต่ไม่มีบัตรใดๆ ไทล์ใน Shade จะปรากฏขึ้นดังแสดงในตัวอย่างในรูปที่ 7 การคลิกที่ไทล์จะเปิดแอปการชำระเงิน NFC เริ่มต้นรูปที่ 7 ตัวอย่างไทล์ในร่มที่แสดงแอปการชำระเงิน NFC เริ่มต้น
การคลิกที่มุมมองสถานะว่างเปล่าดังแสดงในรูปที่ 8 จะเป็นการเปิดแอปการชำระเงิน NFC เริ่มต้น มุมมองสถานะว่างเปล่านี้จะแสดงเฉพาะเมื่อผู้ใช้มีบัตรเหลืออยู่ในกระเป๋าเงิน นำบัตรออกจากหน้ารายละเอียดบัตร แล้วกลับไปที่มุมมองกระเป๋าเงิน
หน้าจอล็อคจะแสดงไอคอนกระเป๋าเงิน
รูปที่ 8 มุมมองสถานะว่างเปล่าใน Quick Access Wallet UI
สถานะที่ไม่ใช่ศูนย์
หากแอพกระเป๋าเงินมีการ์ดตั้งแต่หนึ่งใบขึ้นไป ไทล์ในเฉดสีจะปรากฏดังแสดงในรูปที่ 9
รูปที่ 9 ตัวอย่างไทล์ในที่ร่มเมื่อแอพ wallet มีการ์ดอย่างน้อยหนึ่งใบ
การคลิกที่ไทล์จะแสดงการ์ดแบบหมุน
หน้าจอล็อคจะแสดงปุ่มที่เปิด Quick Access Wallet
รูปที่ 10. Quick Access Wallet UI พร้อมการ์ดที่แสดง
หากการ์ดที่แสดงเป็นวิธีการชำระเงิน NFC การถือโทรศัพท์ไว้ที่เครื่องชำระเงิน NFC จะส่งผลให้ใช้วิธีการชำระเงินนั้นและมุมมองกระเป๋าสตางค์จะถูกปิด
การคลิกที่การ์ดที่แสดงจะเป็นการเปิดกิจกรรมโดยละเอียดสำหรับการ์ดนั้น
หาก
QuickAccessWalletService
มีบัตรหลายใบ ผู้ใช้สามารถปัดระหว่างการ์ดได้เมนูรายการเพิ่มเติมประกอบด้วยรายการเดียว: เปิดการตั้งค่าหน้าจอล็อกเพื่อให้ผู้ใช้สามารถเปลี่ยนตัวเลือก แสดงกระเป๋าเงิน ได้
ล็อกสถานะการทดสอบ
- หากโทรศัพท์ถูกล็อค กระเป๋าเงินจะปรากฏบนหน้าต่างการตั้งค่าด่วน พร้อมคำอธิบายว่า เพิ่มบัตร หากไม่มีบัตรอยู่ในแอปชำระเงินเริ่มต้น หรือ ปลดล็อคเพื่อใช้ หากมีบัตรอยู่ในแอปชำระเงินเริ่มต้น
- หากโทรศัพท์ถูกล็อค การมองเห็นกระเป๋าเงินบนหน้าจอล็อคจะถูกควบคุมโดยการตั้งค่า
Secure.LOCKSCREEN_SHOW_WALLET
ซึ่งควบคุมในการตั้งค่า - หากโทรศัพท์ล็อกอยู่
LOCKSCREEN_SHOW_WALLET
จะเป็นfalse
และไม่มีบัตรอยู่ในแอปการชำระเงิน NFC เริ่มต้น กระเป๋าเงินจะไม่ปรากฏบนหน้าจอล็อก - หากโทรศัพท์ล็อกอยู่
LOCKSCREEN_SHOW_WALLET
จะเป็นtrue
และไม่มีบัตรอยู่ในแอปการชำระเงิน NFC เริ่มต้น กระเป๋าเงินจะไม่ปรากฏบนหน้าจอล็อก - หากโทรศัพท์ล็อกอยู่
LOCKSCREEN_SHOW_WALLET
จะเป็นtrue
และมีบัตรอยู่ในแอปการชำระเงิน NFC เริ่มต้น กระเป๋าเงินจะปรากฏบนหน้าจอล็อก - การปลดล็อกโทรศัพท์ในขณะที่กระเป๋าสตางค์กำลังแสดงอยู่บนหน้าจอล็อกส่งผลให้มีการขอบัตรใหม่ ซึ่งอาจส่งผลให้เนื้อหาในบัตรแตกต่างกัน
การทดสอบการช่วยสำหรับการเข้าถึง
- ผู้ใช้ Talkback สามารถนำทางไปยังมุมมองกระเป๋าเงินได้ด้วยการปัดไปทางซ้ายและขวา และโดยฟังคำอธิบายเนื้อหาของการ์ด
- การปัดไปทางซ้ายและขวาโดยเปิดใช้งาน Talkback จะเป็นการเลือกการ์ดแต่ละใบตามลำดับ ผู้ใช้ Talkback สามารถเลือกและใช้วิธีการชำระเงิน NFC ที่เครื่องชำระเงิน NFC
การทดสอบด้วยตนเองสำหรับ Android 11
การทดสอบคุณสมบัติหลักของ Quick Access Wallet ต้องใช้เทอร์มินัลการชำระเงิน NFC (ของจริงหรือของปลอม) และแอปการชำระเงิน NFC ที่ใช้ QuickAccessWalletService
(แอปกระเป๋าเงิน) คุณลักษณะหลักที่ต้องทดสอบ ได้แก่ ความพร้อมใช้งาน สถานะเป็นศูนย์ การเลือกการ์ด และลักษณะการทำงานของหน้าจอเมื่อล็อก
มีจำหน่าย
- หากการตั้งค่า
GLOBAL_ACTIONS_PANEL_ENABLED
เป็นtrue
และแอปการชำระเงิน NFC เริ่มต้นรองรับคุณลักษณะนี้ คุณจะสามารถเข้าถึงกระเป๋าเงินด่วนเข้าถึงได้ - หากการตั้งค่า
GLOBAL_ACTIONS_PANEL_ENABLED
เป็นfalse
และแอปการชำระเงิน NFC เริ่มต้นรองรับคุณลักษณะนี้ คุณจะเข้าถึงกระเป๋าเงินด่วน ไม่ ได้ - หากการตั้งค่า
GLOBAL_ACTIONS_PANEL_ENABLED
เป็นtrue
และแอปการชำระเงิน NFC เริ่มต้น ไม่ สนับสนุนคุณลักษณะนี้ คุณจะเข้าถึง Quick Access Wallet ไม่ ได้ - หากการตั้งค่า
GLOBAL_ACTIONS_PANEL_ENABLED
เป็นfalse
และแอปการชำระเงิน NFC เริ่มต้น ไม่ รองรับคุณลักษณะนี้ คุณจะเข้าถึง Quick Access Wallet ไม่ ได้
สถานะศูนย์
- หากเปิดใช้งานและส่งออก
QuickAccessWalletService
แต่ไม่มีบัตรใด ๆ Quick Access Wallet UI จะแสดงมุมมองสถานะว่างเปล่า การคลิกที่มุมมองสถานะว่างจะเปิดแอปกระเป๋าเงิน
รูปที่ 11 มุมมองสถานะว่างเปล่าใน Quick Access Wallet UI
สถานะที่ไม่ใช่ศูนย์
หากแอปกระเป๋าเงินมีบัตรอย่างน้อยหนึ่งใบ บัตรจะแสดงใน Quick Access Wallet UI
รูปที่ 12 Quick Access Wallet UI พร้อมการ์ดที่แสดง หากการ์ดที่แสดงเป็นวิธีการชำระเงิน NFC การถือโทรศัพท์ไว้ที่เครื่องชำระเงิน NFC จะส่งผลให้ใช้วิธีการชำระเงินนั้นและมุมมองกระเป๋าสตางค์จะถูกปิด
การคลิกการ์ดที่แสดงจะเป็นการปิดมุมมองกระเป๋าสตางค์และเปิดกิจกรรมโดยละเอียดสำหรับการ์ดนั้น
หาก
QuickAccessWalletService
มีบัตรหลายใบ ผู้ใช้สามารถปัดระหว่างการ์ดได้เมนูรายการเพิ่มเติมประกอบด้วยสองรายการ: รายการหนึ่งเปิดแอปกระเป๋าเงิน และอีกรายการหนึ่งเปิดหน้าจอ แสดงบัตรและบัตรผ่าน ในการตั้งค่า
ล็อกสถานะการทดสอบ
- หากโทรศัพท์ถูกล็อค การมองเห็นกระเป๋าเงินจะถูกควบคุมโดยการ
Settings.Secure.POWER_MENU_LOCK_SHOW_CONTENT
ซึ่งควบคุมได้ในการตั้งค่า - หากโทรศัพท์ถูกล็อคและ
POWER_MENU_LOCK_SHOW_CONTENT
เป็นfalse
ระบบจะไม่แสดงกระเป๋าเงิน - หากโทรศัพท์ถูกล็อคและ
POWER_MENU_LOCK_SHOW_CONTENT
เป็นtrue
กระเป๋าเงินจะแสดงขึ้น - การปลดล็อกโทรศัพท์ในขณะที่กระเป๋าสตางค์กำลังแสดงอยู่บนหน้าจอล็อกส่งผลให้มีการสอบถามการ์ดอีกครั้ง ซึ่งอาจส่งผลให้เนื้อหาในบัตรแตกต่างกัน
การทดสอบการช่วยสำหรับการเข้าถึง
- ผู้ใช้ TalkBack สามารถนำทางไปยังมุมมองกระเป๋าเงินได้ด้วยการปัดไปทางซ้ายและขวา และโดยฟังคำอธิบายเนื้อหาของการ์ด
- การเลื่อนไปทางซ้ายและขวาโดยเปิดใช้ TalkBack จะเป็นการเลือกการ์ดแต่ละใบตามลำดับ ผู้ใช้ TalkBack สามารถเลือกและใช้วิธีการชำระเงิน NFC ที่เครื่องชำระเงิน NFC